x + \frac{e^{y \cdot \log \left(\frac{y}{z + y}\right)}}{y}x + \frac{e^{y \cdot \left(2 \cdot \log \left(\frac{\sqrt[3]{y}}{\sqrt[3]{z + y}}\right) + \log \left(\frac{\sqrt[3]{y}}{\sqrt[3]{z + y}}\right)\right)}}{y}double f(double x, double y, double z) {
double r384432 = x;
double r384433 = y;
double r384434 = z;
double r384435 = r384434 + r384433;
double r384436 = r384433 / r384435;
double r384437 = log(r384436);
double r384438 = r384433 * r384437;
double r384439 = exp(r384438);
double r384440 = r384439 / r384433;
double r384441 = r384432 + r384440;
return r384441;
}
double f(double x, double y, double z) {
double r384442 = x;
double r384443 = y;
double r384444 = 2.0;
double r384445 = cbrt(r384443);
double r384446 = z;
double r384447 = r384446 + r384443;
double r384448 = cbrt(r384447);
double r384449 = r384445 / r384448;
double r384450 = log(r384449);
double r384451 = r384444 * r384450;
double r384452 = r384451 + r384450;
double r384453 = r384443 * r384452;
double r384454 = exp(r384453);
double r384455 = r384454 / r384443;
double r384456 = r384442 + r384455;
return r384456;
}




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
rmApplied add-cube-cbrt19.3
Applied add-cube-cbrt6.0
Applied times-frac6.0
Applied log-prod2.0
Simplified1.0
Final simplification1.0
herbie shell --seed 2020025
(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)))