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 r287535 = x;
double r287536 = y;
double r287537 = r287536 - r287535;
double r287538 = 6.0;
double r287539 = r287537 * r287538;
double r287540 = 2.0;
double r287541 = 3.0;
double r287542 = r287540 / r287541;
double r287543 = z;
double r287544 = r287542 - r287543;
double r287545 = r287539 * r287544;
double r287546 = r287535 + r287545;
return r287546;
}
double f(double x, double y, double z) {
double r287547 = x;
double r287548 = cbrt(r287547);
double r287549 = r287548 * r287548;
double r287550 = y;
double r287551 = r287550 - r287547;
double r287552 = 6.0;
double r287553 = r287551 * r287552;
double r287554 = 2.0;
double r287555 = 3.0;
double r287556 = r287554 / r287555;
double r287557 = z;
double r287558 = r287556 - r287557;
double r287559 = r287553 * r287558;
double r287560 = fma(r287549, r287548, r287559);
return r287560;
}



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))))