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({\left(\frac{\sqrt[3]{y}}{\sqrt[3]{y + z}}\right)}^{y} \cdot {\left(\frac{\sqrt[3]{y}}{\sqrt[3]{y + z}}\right)}^{y}\right)}{y}double f(double x, double y, double z) {
double r371658 = x;
double r371659 = y;
double r371660 = z;
double r371661 = r371660 + r371659;
double r371662 = r371659 / r371661;
double r371663 = log(r371662);
double r371664 = r371659 * r371663;
double r371665 = exp(r371664);
double r371666 = r371665 / r371659;
double r371667 = r371658 + r371666;
return r371667;
}
double f(double x, double y, double z) {
double r371668 = x;
double r371669 = y;
double r371670 = cbrt(r371669);
double r371671 = z;
double r371672 = r371669 + r371671;
double r371673 = cbrt(r371672);
double r371674 = r371670 / r371673;
double r371675 = pow(r371674, r371669);
double r371676 = r371675 * r371675;
double r371677 = r371675 * r371676;
double r371678 = r371677 / r371669;
double r371679 = r371668 + r371678;
return r371679;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 5.9 |
|---|---|
| Target | 1.1 |
| Herbie | 1.1 |
Initial program 5.9
Simplified5.9
rmApplied add-cube-cbrt19.1
Applied add-cube-cbrt5.9
Applied times-frac5.9
Applied unpow-prod-down2.3
Simplified2.3
rmApplied unpow-prod-down1.1
Final simplification1.1
herbie shell --seed 2019194
(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)))