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 r315828 = x;
double r315829 = y;
double r315830 = r315829 - r315828;
double r315831 = 6.0;
double r315832 = r315830 * r315831;
double r315833 = 2.0;
double r315834 = 3.0;
double r315835 = r315833 / r315834;
double r315836 = z;
double r315837 = r315835 - r315836;
double r315838 = r315832 * r315837;
double r315839 = r315828 + r315838;
return r315839;
}
double f(double x, double y, double z) {
double r315840 = y;
double r315841 = x;
double r315842 = r315840 - r315841;
double r315843 = 6.0;
double r315844 = 2.0;
double r315845 = 3.0;
double r315846 = r315844 / r315845;
double r315847 = sqrt(r315846);
double r315848 = z;
double r315849 = -r315848;
double r315850 = fma(r315847, r315847, r315849);
double r315851 = r315843 * r315850;
double r315852 = fma(r315842, r315851, r315841);
return r315852;
}



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