x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\mathsf{fma}\left(\sqrt[3]{x} \cdot \sqrt[3]{x}, \sqrt[3]{x}, \left(y - x\right) \cdot \left(4 - 6 \cdot z\right)\right)double f(double x, double y, double z) {
double r231897 = x;
double r231898 = y;
double r231899 = r231898 - r231897;
double r231900 = 6.0;
double r231901 = r231899 * r231900;
double r231902 = 2.0;
double r231903 = 3.0;
double r231904 = r231902 / r231903;
double r231905 = z;
double r231906 = r231904 - r231905;
double r231907 = r231901 * r231906;
double r231908 = r231897 + r231907;
return r231908;
}
double f(double x, double y, double z) {
double r231909 = x;
double r231910 = cbrt(r231909);
double r231911 = r231910 * r231910;
double r231912 = y;
double r231913 = r231912 - r231909;
double r231914 = 4.0;
double r231915 = 6.0;
double r231916 = z;
double r231917 = r231915 * r231916;
double r231918 = r231914 - r231917;
double r231919 = r231913 * r231918;
double r231920 = fma(r231911, r231910, r231919);
return r231920;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 0.4
rmApplied associate-*l*0.2
Simplified0.2
Taylor expanded around 0 0.2
rmApplied add-cube-cbrt0.3
Applied fma-def0.3
Final simplification0.3
herbie shell --seed 2020045 +o rules:numerics
(FPCore (x y z)
:name "Data.Colour.RGBSpace.HSL:hsl from colour-2.3.3, D"
:precision binary64
(+ x (* (* (- y x) 6) (- (/ 2 3) z))))