\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\sqrt[3]{\frac{x \cdot {e}^{\left(\left(\log a \cdot \left(t - 1\right) + \log z \cdot y\right) - b\right)}}{y}} \cdot \left(\sqrt[3]{\sqrt[3]{\frac{x \cdot e^{\left(\log a \cdot \left(t - 1\right) + \log z \cdot y\right) - b}}{y}} \cdot \left(\sqrt[3]{\frac{x \cdot e^{\left(\log a \cdot \left(t - 1\right) + \log z \cdot y\right) - b}}{y}} \cdot \sqrt[3]{\frac{x \cdot e^{\left(\log a \cdot \left(t - 1\right) + \log z \cdot y\right) - b}}{y}}\right)} \cdot \left(\sqrt[3]{\sqrt[3]{\frac{x \cdot e^{\left(\log a \cdot \left(t - 1\right) + \log z \cdot y\right) - b}}{y}}} \cdot \left(\sqrt[3]{\sqrt[3]{\frac{x \cdot e^{\left(\log a \cdot \left(t - 1\right) + \log z \cdot y\right) - b}}{y}}} \cdot \sqrt[3]{\sqrt[3]{\frac{x \cdot e^{\left(\log a \cdot \left(t - 1\right) + \log z \cdot y\right) - b}}{y}}}\right)\right)\right)double f(double x, double y, double z, double t, double a, double b) {
double r25041227 = x;
double r25041228 = y;
double r25041229 = z;
double r25041230 = log(r25041229);
double r25041231 = r25041228 * r25041230;
double r25041232 = t;
double r25041233 = 1.0;
double r25041234 = r25041232 - r25041233;
double r25041235 = a;
double r25041236 = log(r25041235);
double r25041237 = r25041234 * r25041236;
double r25041238 = r25041231 + r25041237;
double r25041239 = b;
double r25041240 = r25041238 - r25041239;
double r25041241 = exp(r25041240);
double r25041242 = r25041227 * r25041241;
double r25041243 = r25041242 / r25041228;
return r25041243;
}
double f(double x, double y, double z, double t, double a, double b) {
double r25041244 = x;
double r25041245 = exp(1.0);
double r25041246 = a;
double r25041247 = log(r25041246);
double r25041248 = t;
double r25041249 = 1.0;
double r25041250 = r25041248 - r25041249;
double r25041251 = r25041247 * r25041250;
double r25041252 = z;
double r25041253 = log(r25041252);
double r25041254 = y;
double r25041255 = r25041253 * r25041254;
double r25041256 = r25041251 + r25041255;
double r25041257 = b;
double r25041258 = r25041256 - r25041257;
double r25041259 = pow(r25041245, r25041258);
double r25041260 = r25041244 * r25041259;
double r25041261 = r25041260 / r25041254;
double r25041262 = cbrt(r25041261);
double r25041263 = exp(r25041258);
double r25041264 = r25041244 * r25041263;
double r25041265 = r25041264 / r25041254;
double r25041266 = cbrt(r25041265);
double r25041267 = r25041266 * r25041266;
double r25041268 = r25041266 * r25041267;
double r25041269 = cbrt(r25041268);
double r25041270 = cbrt(r25041266);
double r25041271 = r25041270 * r25041270;
double r25041272 = r25041270 * r25041271;
double r25041273 = r25041269 * r25041272;
double r25041274 = r25041262 * r25041273;
return r25041274;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
Results
| Original | 1.7 |
|---|---|
| Target | 11.3 |
| Herbie | 1.7 |
Initial program 1.7
rmApplied add-cube-cbrt1.7
rmApplied *-un-lft-identity1.7
Applied exp-prod1.7
Simplified1.7
rmApplied add-cube-cbrt1.7
rmApplied add-cbrt-cube1.7
Final simplification1.7
herbie shell --seed 2019172
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2, A"
:herbie-target
(if (< t -0.8845848504127471) (/ (* x (/ (pow a (- t 1.0)) y)) (- (+ b 1.0) (* y (log z)))) (if (< t 852031.2288374073) (/ (* (/ x y) (pow a (- t 1.0))) (exp (- b (* (log z) y)))) (/ (* x (/ (pow a (- t 1.0)) y)) (- (+ b 1.0) (* y (log z))))))
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))