\frac{x \cdot \left(y + z\right)}{z}\frac{\sqrt[3]{y + z} \cdot \sqrt[3]{y + z}}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \frac{x}{\frac{\sqrt[3]{z}}{\sqrt[3]{y + z}}}double f(double x, double y, double z) {
double r467755 = x;
double r467756 = y;
double r467757 = z;
double r467758 = r467756 + r467757;
double r467759 = r467755 * r467758;
double r467760 = r467759 / r467757;
return r467760;
}
double f(double x, double y, double z) {
double r467761 = y;
double r467762 = z;
double r467763 = r467761 + r467762;
double r467764 = cbrt(r467763);
double r467765 = r467764 * r467764;
double r467766 = cbrt(r467762);
double r467767 = r467766 * r467766;
double r467768 = r467765 / r467767;
double r467769 = x;
double r467770 = r467766 / r467764;
double r467771 = r467769 / r467770;
double r467772 = r467768 * r467771;
return r467772;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 12.5 |
|---|---|
| Target | 3.0 |
| Herbie | 1.1 |
Initial program 12.5
rmApplied associate-/l*3.0
rmApplied add-cube-cbrt4.2
Applied add-cube-cbrt3.6
Applied times-frac3.6
Applied *-un-lft-identity3.6
Applied times-frac1.1
Simplified1.1
Final simplification1.1
herbie shell --seed 2020049
(FPCore (x y z)
:name "Numeric.SpecFunctions:choose from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(/ x (/ z (+ y z)))
(/ (* x (+ y z)) z))