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 r195733 = x;
double r195734 = y;
double r195735 = r195734 - r195733;
double r195736 = 6.0;
double r195737 = r195735 * r195736;
double r195738 = 2.0;
double r195739 = 3.0;
double r195740 = r195738 / r195739;
double r195741 = z;
double r195742 = r195740 - r195741;
double r195743 = r195737 * r195742;
double r195744 = r195733 + r195743;
return r195744;
}
double f(double x, double y, double z) {
double r195745 = y;
double r195746 = x;
double r195747 = r195745 - r195746;
double r195748 = 4.0;
double r195749 = 6.0;
double r195750 = z;
double r195751 = r195749 * r195750;
double r195752 = r195748 - r195751;
double r195753 = fma(r195747, r195752, r195746);
return r195753;
}



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