x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\mathsf{fma}\left(y - x, 6 \cdot \mathsf{fma}\left(\sqrt{\frac{2}{3}}, \sqrt{\frac{2}{3}}, -z\right), x\right)double f(double x, double y, double z) {
double r202436 = x;
double r202437 = y;
double r202438 = r202437 - r202436;
double r202439 = 6.0;
double r202440 = r202438 * r202439;
double r202441 = 2.0;
double r202442 = 3.0;
double r202443 = r202441 / r202442;
double r202444 = z;
double r202445 = r202443 - r202444;
double r202446 = r202440 * r202445;
double r202447 = r202436 + r202446;
return r202447;
}
double f(double x, double y, double z) {
double r202448 = y;
double r202449 = x;
double r202450 = r202448 - r202449;
double r202451 = 6.0;
double r202452 = 2.0;
double r202453 = 3.0;
double r202454 = r202452 / r202453;
double r202455 = sqrt(r202454);
double r202456 = z;
double r202457 = -r202456;
double r202458 = fma(r202455, r202455, r202457);
double r202459 = r202451 * r202458;
double r202460 = fma(r202450, r202459, r202449);
return r202460;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 0.4
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied fma-neg0.2
Final simplification0.2
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))))