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(-z\right) \cdot \left(\left(y - x\right) \cdot 6\right)
double f(double x, double y, double z) {
double r314785 = x;
double r314786 = y;
double r314787 = r314786 - r314785;
double r314788 = 6.0;
double r314789 = r314787 * r314788;
double r314790 = 2.0;
double r314791 = 3.0;
double r314792 = r314790 / r314791;
double r314793 = z;
double r314794 = r314792 - r314793;
double r314795 = r314789 * r314794;
double r314796 = r314785 + r314795;
return r314796;
}
double f(double x, double y, double z) {
double r314797 = 4.0;
double r314798 = y;
double r314799 = r314797 * r314798;
double r314800 = 3.0;
double r314801 = x;
double r314802 = r314800 * r314801;
double r314803 = r314799 - r314802;
double r314804 = z;
double r314805 = -r314804;
double r314806 = r314798 - r314801;
double r314807 = 6.0;
double r314808 = r314806 * r314807;
double r314809 = r314805 * r314808;
double r314810 = r314803 + r314809;
return r314810;
}



Bits error versus x



Bits error versus y



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