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 r192731 = x;
double r192732 = y;
double r192733 = r192732 - r192731;
double r192734 = 6.0;
double r192735 = r192733 * r192734;
double r192736 = 2.0;
double r192737 = 3.0;
double r192738 = r192736 / r192737;
double r192739 = z;
double r192740 = r192738 - r192739;
double r192741 = r192735 * r192740;
double r192742 = r192731 + r192741;
return r192742;
}
double f(double x, double y, double z) {
double r192743 = y;
double r192744 = x;
double r192745 = r192743 - r192744;
double r192746 = 6.0;
double r192747 = 2.0;
double r192748 = 3.0;
double r192749 = r192747 / r192748;
double r192750 = sqrt(r192749);
double r192751 = z;
double r192752 = -r192751;
double r192753 = fma(r192750, r192750, r192752);
double r192754 = r192746 * r192753;
double r192755 = fma(r192745, r192754, r192744);
return r192755;
}



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