x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\mathsf{fma}\left(-x, 3, y \cdot 4\right) + \left(-z\right) \cdot \left(\left(y - x\right) \cdot 6\right)double f(double x, double y, double z) {
double r202006 = x;
double r202007 = y;
double r202008 = r202007 - r202006;
double r202009 = 6.0;
double r202010 = r202008 * r202009;
double r202011 = 2.0;
double r202012 = 3.0;
double r202013 = r202011 / r202012;
double r202014 = z;
double r202015 = r202013 - r202014;
double r202016 = r202010 * r202015;
double r202017 = r202006 + r202016;
return r202017;
}
double f(double x, double y, double z) {
double r202018 = x;
double r202019 = -r202018;
double r202020 = 3.0;
double r202021 = y;
double r202022 = 4.0;
double r202023 = r202021 * r202022;
double r202024 = fma(r202019, r202020, r202023);
double r202025 = z;
double r202026 = -r202025;
double r202027 = r202021 - r202018;
double r202028 = 6.0;
double r202029 = r202027 * r202028;
double r202030 = r202026 * r202029;
double r202031 = r202024 + r202030;
return r202031;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 0.4
rmApplied sub-neg0.4
Applied distribute-rgt-in0.4
Applied associate-+r+0.4
Simplified0.2
Taylor expanded around 0 0.2
Simplified0.2
rmApplied *-un-lft-identity0.2
Applied associate-*l*0.2
Simplified0.2
rmApplied distribute-rgt-neg-out0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019194 +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))))