x + \left(\left(y - x\right) \cdot 6\right) \cdot z
x + \left(\left(\left(y - x\right) \cdot \left(\sqrt[3]{\sqrt{6}} \cdot \sqrt[3]{\sqrt{6}}\right)\right) \cdot \sqrt[3]{\sqrt{6}}\right) \cdot \left(\sqrt{6} \cdot z\right)double f(double x, double y, double z) {
double r998678 = x;
double r998679 = y;
double r998680 = r998679 - r998678;
double r998681 = 6.0;
double r998682 = r998680 * r998681;
double r998683 = z;
double r998684 = r998682 * r998683;
double r998685 = r998678 + r998684;
return r998685;
}
double f(double x, double y, double z) {
double r998686 = x;
double r998687 = y;
double r998688 = r998687 - r998686;
double r998689 = 6.0;
double r998690 = sqrt(r998689);
double r998691 = cbrt(r998690);
double r998692 = r998691 * r998691;
double r998693 = r998688 * r998692;
double r998694 = r998693 * r998691;
double r998695 = z;
double r998696 = r998690 * r998695;
double r998697 = r998694 * r998696;
double r998698 = r998686 + r998697;
return r998698;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 0.3 |
|---|---|
| Target | 0.2 |
| Herbie | 0.4 |
Initial program 0.3
rmApplied add-sqr-sqrt0.6
Applied associate-*r*0.7
rmApplied add-cube-cbrt0.3
Applied associate-*r*0.4
rmApplied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2019354 +o rules:numerics
(FPCore (x y z)
:name "Data.Colour.RGBSpace.HSL:hsl from colour-2.3.3, E"
:precision binary64
:herbie-target
(- x (* (* 6 z) (- x y)))
(+ x (* (* (- y x) 6) z)))