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(6 \cdot \left(\frac{2}{3} - z\right)\right) \cdot \left(y - x\right)\right)double f(double x, double y, double z) {
double r10351754 = x;
double r10351755 = y;
double r10351756 = r10351755 - r10351754;
double r10351757 = 6.0;
double r10351758 = r10351756 * r10351757;
double r10351759 = 2.0;
double r10351760 = 3.0;
double r10351761 = r10351759 / r10351760;
double r10351762 = z;
double r10351763 = r10351761 - r10351762;
double r10351764 = r10351758 * r10351763;
double r10351765 = r10351754 + r10351764;
return r10351765;
}
double f(double x, double y, double z) {
double r10351766 = x;
double r10351767 = cbrt(r10351766);
double r10351768 = r10351767 * r10351767;
double r10351769 = 6.0;
double r10351770 = 2.0;
double r10351771 = 3.0;
double r10351772 = r10351770 / r10351771;
double r10351773 = z;
double r10351774 = r10351772 - r10351773;
double r10351775 = r10351769 * r10351774;
double r10351776 = y;
double r10351777 = r10351776 - r10351766;
double r10351778 = r10351775 * r10351777;
double r10351779 = fma(r10351768, r10351767, r10351778);
return r10351779;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 0.4
rmApplied associate-*l*0.2
rmApplied add-cube-cbrt0.4
Applied fma-def0.4
Final simplification0.4
herbie shell --seed 2019192 +o rules:numerics
(FPCore (x y z)
:name "Data.Colour.RGBSpace.HSL:hsl from colour-2.3.3, D"
(+ x (* (* (- y x) 6.0) (- (/ 2.0 3.0) z))))