x + \frac{e^{y \cdot \log \left(\frac{y}{z + y}\right)}}{y}\frac{e^{y \cdot \log \left(\frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{y + z} \cdot \sqrt[3]{y + z}}\right)} \cdot e^{y \cdot \log \left(\frac{\sqrt[3]{y}}{\sqrt[3]{y + z}}\right)}}{y} + xdouble f(double x, double y, double z) {
double r24049130 = x;
double r24049131 = y;
double r24049132 = z;
double r24049133 = r24049132 + r24049131;
double r24049134 = r24049131 / r24049133;
double r24049135 = log(r24049134);
double r24049136 = r24049131 * r24049135;
double r24049137 = exp(r24049136);
double r24049138 = r24049137 / r24049131;
double r24049139 = r24049130 + r24049138;
return r24049139;
}
double f(double x, double y, double z) {
double r24049140 = y;
double r24049141 = cbrt(r24049140);
double r24049142 = r24049141 * r24049141;
double r24049143 = z;
double r24049144 = r24049140 + r24049143;
double r24049145 = cbrt(r24049144);
double r24049146 = r24049145 * r24049145;
double r24049147 = r24049142 / r24049146;
double r24049148 = log(r24049147);
double r24049149 = r24049140 * r24049148;
double r24049150 = exp(r24049149);
double r24049151 = r24049141 / r24049145;
double r24049152 = log(r24049151);
double r24049153 = r24049140 * r24049152;
double r24049154 = exp(r24049153);
double r24049155 = r24049150 * r24049154;
double r24049156 = r24049155 / r24049140;
double r24049157 = x;
double r24049158 = r24049156 + r24049157;
return r24049158;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 5.8 |
|---|---|
| Target | 1.0 |
| Herbie | 2.1 |
Initial program 5.8
rmApplied add-cube-cbrt19.1
Applied add-cube-cbrt5.8
Applied times-frac5.8
Applied log-prod2.1
Applied distribute-rgt-in2.1
Applied exp-sum2.1
Final simplification2.1
herbie shell --seed 2019179
(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)))