x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\left(x + \left(\left(y - x\right) \cdot 6\right) \cdot \frac{2}{3}\right) + \left(\left(y - x\right) \cdot 6\right) \cdot \left(-z\right)double f(double x, double y, double z) {
double r299908 = x;
double r299909 = y;
double r299910 = r299909 - r299908;
double r299911 = 6.0;
double r299912 = r299910 * r299911;
double r299913 = 2.0;
double r299914 = 3.0;
double r299915 = r299913 / r299914;
double r299916 = z;
double r299917 = r299915 - r299916;
double r299918 = r299912 * r299917;
double r299919 = r299908 + r299918;
return r299919;
}
double f(double x, double y, double z) {
double r299920 = x;
double r299921 = y;
double r299922 = r299921 - r299920;
double r299923 = 6.0;
double r299924 = r299922 * r299923;
double r299925 = 2.0;
double r299926 = 3.0;
double r299927 = r299925 / r299926;
double r299928 = r299924 * r299927;
double r299929 = r299920 + r299928;
double r299930 = z;
double r299931 = -r299930;
double r299932 = r299924 * r299931;
double r299933 = r299929 + r299932;
return r299933;
}



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
Final simplification0.4
herbie shell --seed 2019350
(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))))