Schau mal in die FastLED Bibliothek. Da sind mehrere Version davon drin:
https://github.com/FastLED/FastLED/blob/master/hsv2rgb.cpp
Die evtl. benötigten scale8() Funktionen gibt es hier:
https://github.com/FastLED/FastLED/blob/master/lib8tion/scale8.h
(sieht komplizierter aus als es ist. Man braucht wohl jeweils nur eine Zeile davon)