x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\left(\frac{2}{3} \cdot \left(\left(y - x\right) \cdot 6\right) + \left(z \cdot \left(6 \cdot x\right) + \left(-6\right) \cdot \left(y \cdot z\right)\right)\right) + xdouble f(double x, double y, double z) {
double r234886 = x;
double r234887 = y;
double r234888 = r234887 - r234886;
double r234889 = 6.0;
double r234890 = r234888 * r234889;
double r234891 = 2.0;
double r234892 = 3.0;
double r234893 = r234891 / r234892;
double r234894 = z;
double r234895 = r234893 - r234894;
double r234896 = r234890 * r234895;
double r234897 = r234886 + r234896;
return r234897;
}
double f(double x, double y, double z) {
double r234898 = 2.0;
double r234899 = 3.0;
double r234900 = r234898 / r234899;
double r234901 = y;
double r234902 = x;
double r234903 = r234901 - r234902;
double r234904 = 6.0;
double r234905 = r234903 * r234904;
double r234906 = r234900 * r234905;
double r234907 = z;
double r234908 = r234904 * r234902;
double r234909 = r234907 * r234908;
double r234910 = -r234904;
double r234911 = r234901 * r234907;
double r234912 = r234910 * r234911;
double r234913 = r234909 + r234912;
double r234914 = r234906 + r234913;
double r234915 = r234914 + r234902;
return r234915;
}



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
Simplified0.4
Simplified0.4
rmApplied sub-neg0.4
Applied distribute-lft-in0.4
Applied distribute-lft-in0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019174
(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))))