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 r140720 = x;
double r140721 = y;
double r140722 = r140721 - r140720;
double r140723 = 6.0;
double r140724 = r140722 * r140723;
double r140725 = 2.0;
double r140726 = 3.0;
double r140727 = r140725 / r140726;
double r140728 = z;
double r140729 = r140727 - r140728;
double r140730 = r140724 * r140729;
double r140731 = r140720 + r140730;
return r140731;
}
double f(double x, double y, double z) {
double r140732 = y;
double r140733 = x;
double r140734 = r140732 - r140733;
double r140735 = 4.0;
double r140736 = 6.0;
double r140737 = z;
double r140738 = r140736 * r140737;
double r140739 = r140735 - r140738;
double r140740 = fma(r140734, r140739, r140733);
return r140740;
}



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