x + \frac{e^{y \cdot \log \left(\frac{y}{z + y}\right)}}{y}x + \frac{{\left(\left|\frac{\sqrt[3]{y}}{\sqrt[3]{z + y}}\right|\right)}^{y} \cdot {\left(\left|\frac{\sqrt[3]{y}}{\sqrt[3]{z + y}}\right|\right)}^{y}}{\frac{y}{{\left(\frac{\sqrt[3]{y}}{\sqrt[3]{z + y}}\right)}^{y}}}double f(double x, double y, double z) {
double r293376 = x;
double r293377 = y;
double r293378 = z;
double r293379 = r293378 + r293377;
double r293380 = r293377 / r293379;
double r293381 = log(r293380);
double r293382 = r293377 * r293381;
double r293383 = exp(r293382);
double r293384 = r293383 / r293377;
double r293385 = r293376 + r293384;
return r293385;
}
double f(double x, double y, double z) {
double r293386 = x;
double r293387 = y;
double r293388 = cbrt(r293387);
double r293389 = z;
double r293390 = r293389 + r293387;
double r293391 = cbrt(r293390);
double r293392 = r293388 / r293391;
double r293393 = fabs(r293392);
double r293394 = pow(r293393, r293387);
double r293395 = r293394 * r293394;
double r293396 = pow(r293392, r293387);
double r293397 = r293387 / r293396;
double r293398 = r293395 / r293397;
double r293399 = r293386 + r293398;
return r293399;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.0 |
|---|---|
| Target | 1.0 |
| Herbie | 1.0 |
Initial program 6.0
Simplified6.0
rmApplied add-cube-cbrt19.7
Applied add-cube-cbrt6.0
Applied times-frac6.0
Applied unpow-prod-down2.1
Applied associate-/l*2.1
rmApplied add-sqr-sqrt2.1
Applied unpow-prod-down2.1
Simplified2.1
Simplified1.0
Final simplification1.0
herbie shell --seed 2020046
(FPCore (x y z)
:name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, G"
:precision binary64
:herbie-target
(if (< (/ y (+ z y)) 7.1154157597908e-315) (+ x (/ (exp (/ -1 z)) y)) (+ x (/ (exp (log (pow (/ y (+ y z)) y))) y)))
(+ x (/ (exp (* y (log (/ y (+ z y))))) y)))