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 r157661 = x;
double r157662 = y;
double r157663 = r157662 - r157661;
double r157664 = 6.0;
double r157665 = r157663 * r157664;
double r157666 = 2.0;
double r157667 = 3.0;
double r157668 = r157666 / r157667;
double r157669 = z;
double r157670 = r157668 - r157669;
double r157671 = r157665 * r157670;
double r157672 = r157661 + r157671;
return r157672;
}
double f(double x, double y, double z) {
double r157673 = y;
double r157674 = x;
double r157675 = r157673 - r157674;
double r157676 = 4.0;
double r157677 = 6.0;
double r157678 = z;
double r157679 = r157677 * r157678;
double r157680 = r157676 - r157679;
double r157681 = fma(r157675, r157680, r157674);
return r157681;
}



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