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 r13763567 = x;
double r13763568 = y;
double r13763569 = r13763568 - r13763567;
double r13763570 = 6.0;
double r13763571 = r13763569 * r13763570;
double r13763572 = 2.0;
double r13763573 = 3.0;
double r13763574 = r13763572 / r13763573;
double r13763575 = z;
double r13763576 = r13763574 - r13763575;
double r13763577 = r13763571 * r13763576;
double r13763578 = r13763567 + r13763577;
return r13763578;
}
double f(double x, double y, double z) {
double r13763579 = x;
double r13763580 = cbrt(r13763579);
double r13763581 = r13763580 * r13763580;
double r13763582 = 6.0;
double r13763583 = 2.0;
double r13763584 = 3.0;
double r13763585 = r13763583 / r13763584;
double r13763586 = z;
double r13763587 = r13763585 - r13763586;
double r13763588 = r13763582 * r13763587;
double r13763589 = y;
double r13763590 = r13763589 - r13763579;
double r13763591 = r13763588 * r13763590;
double r13763592 = fma(r13763581, r13763580, r13763591);
return r13763592;
}



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