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 r180305 = x;
double r180306 = y;
double r180307 = r180306 - r180305;
double r180308 = 6.0;
double r180309 = r180307 * r180308;
double r180310 = 2.0;
double r180311 = 3.0;
double r180312 = r180310 / r180311;
double r180313 = z;
double r180314 = r180312 - r180313;
double r180315 = r180309 * r180314;
double r180316 = r180305 + r180315;
return r180316;
}
double f(double x, double y, double z) {
double r180317 = y;
double r180318 = x;
double r180319 = r180317 - r180318;
double r180320 = 4.0;
double r180321 = 6.0;
double r180322 = z;
double r180323 = r180321 * r180322;
double r180324 = r180320 - r180323;
double r180325 = fma(r180319, r180324, r180318);
return r180325;
}



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