x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\left(\left(x + y \cdot 4\right) + 4 \cdot \left(-x\right)\right) + \left(\left(y - x\right) \cdot 6\right) \cdot \left(-z\right)
double f(double x, double y, double z) {
double r201861 = x;
double r201862 = y;
double r201863 = r201862 - r201861;
double r201864 = 6.0;
double r201865 = r201863 * r201864;
double r201866 = 2.0;
double r201867 = 3.0;
double r201868 = r201866 / r201867;
double r201869 = z;
double r201870 = r201868 - r201869;
double r201871 = r201865 * r201870;
double r201872 = r201861 + r201871;
return r201872;
}
double f(double x, double y, double z) {
double r201873 = x;
double r201874 = y;
double r201875 = 4.0;
double r201876 = r201874 * r201875;
double r201877 = r201873 + r201876;
double r201878 = -r201873;
double r201879 = r201875 * r201878;
double r201880 = r201877 + r201879;
double r201881 = r201874 - r201873;
double r201882 = 6.0;
double r201883 = r201881 * r201882;
double r201884 = z;
double r201885 = -r201884;
double r201886 = r201883 * r201885;
double r201887 = r201880 + r201886;
return r201887;
}



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
Taylor expanded around 0 0.2
Simplified0.2
rmApplied sub-neg0.2
Applied distribute-lft-in0.2
Applied associate-+r+0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019326
(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))))