x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\mathsf{fma}\left(y - x, 4 - 6 \cdot z, x\right)double f(double x, double y, double z) {
double r177964 = x;
double r177965 = y;
double r177966 = r177965 - r177964;
double r177967 = 6.0;
double r177968 = r177966 * r177967;
double r177969 = 2.0;
double r177970 = 3.0;
double r177971 = r177969 / r177970;
double r177972 = z;
double r177973 = r177971 - r177972;
double r177974 = r177968 * r177973;
double r177975 = r177964 + r177974;
return r177975;
}
double f(double x, double y, double z) {
double r177976 = y;
double r177977 = x;
double r177978 = r177976 - r177977;
double r177979 = 4.0;
double r177980 = 6.0;
double r177981 = z;
double r177982 = r177980 * r177981;
double r177983 = r177979 - r177982;
double r177984 = fma(r177978, r177983, r177977);
return r177984;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 0.4
Simplified0.2
Taylor expanded around 0 0.2
Final simplification0.2
herbie shell --seed 2019323 +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))))