\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 r432218 = x;
double r432219 = y;
double r432220 = z;
double r432221 = r432219 + r432220;
double r432222 = r432218 * r432221;
double r432223 = r432222 / r432220;
return r432223;
}
double f(double x, double y, double z) {
double r432224 = y;
double r432225 = z;
double r432226 = r432224 + r432225;
double r432227 = cbrt(r432226);
double r432228 = r432227 * r432227;
double r432229 = cbrt(r432225);
double r432230 = r432229 * r432229;
double r432231 = r432228 / r432230;
double r432232 = x;
double r432233 = r432229 / r432227;
double r432234 = r432232 / r432233;
double r432235 = r432231 * r432234;
return r432235;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 12.4 |
|---|---|
| Target | 3.2 |
| Herbie | 1.2 |
Initial program 12.4
rmApplied associate-/l*3.2
rmApplied add-cube-cbrt4.4
Applied add-cube-cbrt3.7
Applied times-frac3.8
Applied *-un-lft-identity3.8
Applied times-frac1.2
Simplified1.2
Final simplification1.2
herbie shell --seed 2019322
(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))