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(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\right)double f(double x, double y, double z) {
double r278600 = x;
double r278601 = y;
double r278602 = r278601 - r278600;
double r278603 = 6.0;
double r278604 = r278602 * r278603;
double r278605 = 2.0;
double r278606 = 3.0;
double r278607 = r278605 / r278606;
double r278608 = z;
double r278609 = r278607 - r278608;
double r278610 = r278604 * r278609;
double r278611 = r278600 + r278610;
return r278611;
}
double f(double x, double y, double z) {
double r278612 = x;
double r278613 = cbrt(r278612);
double r278614 = r278613 * r278613;
double r278615 = y;
double r278616 = r278615 - r278612;
double r278617 = 6.0;
double r278618 = r278616 * r278617;
double r278619 = 2.0;
double r278620 = 3.0;
double r278621 = r278619 / r278620;
double r278622 = z;
double r278623 = r278621 - r278622;
double r278624 = r278618 * r278623;
double r278625 = fma(r278614, r278613, r278624);
return r278625;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 0.4
rmApplied add-cube-cbrt0.5
Applied fma-def0.5
Final simplification0.5
herbie shell --seed 2020047 +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))))