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 r39742 = x;
double r39743 = y;
double r39744 = r39743 - r39742;
double r39745 = 6.0;
double r39746 = r39744 * r39745;
double r39747 = 2.0;
double r39748 = 3.0;
double r39749 = r39747 / r39748;
double r39750 = z;
double r39751 = r39749 - r39750;
double r39752 = r39746 * r39751;
double r39753 = r39742 + r39752;
return r39753;
}
double f(double x, double y, double z) {
double r39754 = y;
double r39755 = x;
double r39756 = r39754 - r39755;
double r39757 = 4.0;
double r39758 = 6.0;
double r39759 = z;
double r39760 = r39758 * r39759;
double r39761 = r39757 - r39760;
double r39762 = fma(r39756, r39761, r39755);
return r39762;
}



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