x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\left(4 \cdot y - 3 \cdot x\right) + \left(\left(y - x\right) \cdot 6\right) \cdot \left(-z\right)
double f(double x, double y, double z) {
double r309901 = x;
double r309902 = y;
double r309903 = r309902 - r309901;
double r309904 = 6.0;
double r309905 = r309903 * r309904;
double r309906 = 2.0;
double r309907 = 3.0;
double r309908 = r309906 / r309907;
double r309909 = z;
double r309910 = r309908 - r309909;
double r309911 = r309905 * r309910;
double r309912 = r309901 + r309911;
return r309912;
}
double f(double x, double y, double z) {
double r309913 = 4.0;
double r309914 = y;
double r309915 = r309913 * r309914;
double r309916 = 3.0;
double r309917 = x;
double r309918 = r309916 * r309917;
double r309919 = r309915 - r309918;
double r309920 = r309914 - r309917;
double r309921 = 6.0;
double r309922 = r309920 * r309921;
double r309923 = z;
double r309924 = -r309923;
double r309925 = r309922 * r309924;
double r309926 = r309919 + r309925;
return r309926;
}



Bits error versus x



Bits error versus y



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