x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\mathsf{fma}\left(y - x, 6 \cdot \left(\frac{2}{3} - z\right), x\right) + \mathsf{fma}\left(-\sqrt[3]{z}, \sqrt[3]{z} \cdot \sqrt[3]{z}, \sqrt[3]{z} \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) \cdot \left(\left(y - x\right) \cdot 6\right)double f(double x, double y, double z) {
double r262316 = x;
double r262317 = y;
double r262318 = r262317 - r262316;
double r262319 = 6.0;
double r262320 = r262318 * r262319;
double r262321 = 2.0;
double r262322 = 3.0;
double r262323 = r262321 / r262322;
double r262324 = z;
double r262325 = r262323 - r262324;
double r262326 = r262320 * r262325;
double r262327 = r262316 + r262326;
return r262327;
}
double f(double x, double y, double z) {
double r262328 = y;
double r262329 = x;
double r262330 = r262328 - r262329;
double r262331 = 6.0;
double r262332 = 2.0;
double r262333 = 3.0;
double r262334 = r262332 / r262333;
double r262335 = z;
double r262336 = r262334 - r262335;
double r262337 = r262331 * r262336;
double r262338 = fma(r262330, r262337, r262329);
double r262339 = cbrt(r262335);
double r262340 = -r262339;
double r262341 = r262339 * r262339;
double r262342 = r262339 * r262341;
double r262343 = fma(r262340, r262341, r262342);
double r262344 = r262330 * r262331;
double r262345 = r262343 * r262344;
double r262346 = r262338 + r262345;
return r262346;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 0.4
rmApplied add-cube-cbrt0.8
Applied add-sqr-sqrt0.8
Applied prod-diff0.8
Applied distribute-rgt-in0.8
Applied associate-+r+0.8
Simplified0.3
Final simplification0.3
herbie shell --seed 2020036 +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))))