x + \frac{e^{y \cdot \log \left(\frac{y}{z + y}\right)}}{y}x + \frac{{\left(\frac{\sqrt[3]{y}}{\sqrt[3]{y + z}}\right)}^{y} \cdot {\left(\frac{\sqrt[3]{y}}{\sqrt[3]{y + z}}\right)}^{y}}{\frac{y}{{\left(\frac{\sqrt[3]{y}}{\sqrt[3]{y + z}}\right)}^{y}}}double f(double x, double y, double z) {
double r384727 = x;
double r384728 = y;
double r384729 = z;
double r384730 = r384729 + r384728;
double r384731 = r384728 / r384730;
double r384732 = log(r384731);
double r384733 = r384728 * r384732;
double r384734 = exp(r384733);
double r384735 = r384734 / r384728;
double r384736 = r384727 + r384735;
return r384736;
}
double f(double x, double y, double z) {
double r384737 = x;
double r384738 = y;
double r384739 = cbrt(r384738);
double r384740 = z;
double r384741 = r384738 + r384740;
double r384742 = cbrt(r384741);
double r384743 = r384739 / r384742;
double r384744 = pow(r384743, r384738);
double r384745 = r384744 * r384744;
double r384746 = r384738 / r384744;
double r384747 = r384745 / r384746;
double r384748 = r384737 + r384747;
return r384748;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 5.7 |
|---|---|
| Target | 0.9 |
| Herbie | 0.9 |
Initial program 5.7
Simplified5.7
rmApplied add-cube-cbrt19.5
Applied add-cube-cbrt5.8
Applied times-frac5.8
Applied unpow-prod-down1.8
Applied associate-/l*1.8
rmApplied times-frac1.8
Applied unpow-prod-down0.9
Final simplification0.9
herbie shell --seed 2019174
(FPCore (x y z)
:name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, G"
:herbie-target
(if (< (/ y (+ z y)) 7.1154157597908e-315) (+ x (/ (exp (/ -1.0 z)) y)) (+ x (/ (exp (log (pow (/ y (+ y z)) y))) y)))
(+ x (/ (exp (* y (log (/ y (+ z y))))) y)))