\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1.0\right) \cdot \log a\right) - b}}{y}\left(x \cdot \frac{\sqrt[3]{{e}^{\left(\left(\log z \cdot y + \left(t - 1.0\right) \cdot \log a\right) - b\right)}} \cdot \sqrt[3]{{e}^{\left(\left(\log z \cdot y + \left(t - 1.0\right) \cdot \log a\right) - b\right)}}}{\sqrt[3]{y} \cdot \sqrt[3]{y}}\right) \cdot \frac{\sqrt[3]{e^{\left(\log z \cdot y + \left(t - 1.0\right) \cdot \log a\right) - b}}}{\sqrt[3]{y}}double f(double x, double y, double z, double t, double a, double b) {
double r17544385 = x;
double r17544386 = y;
double r17544387 = z;
double r17544388 = log(r17544387);
double r17544389 = r17544386 * r17544388;
double r17544390 = t;
double r17544391 = 1.0;
double r17544392 = r17544390 - r17544391;
double r17544393 = a;
double r17544394 = log(r17544393);
double r17544395 = r17544392 * r17544394;
double r17544396 = r17544389 + r17544395;
double r17544397 = b;
double r17544398 = r17544396 - r17544397;
double r17544399 = exp(r17544398);
double r17544400 = r17544385 * r17544399;
double r17544401 = r17544400 / r17544386;
return r17544401;
}
double f(double x, double y, double z, double t, double a, double b) {
double r17544402 = x;
double r17544403 = exp(1.0);
double r17544404 = z;
double r17544405 = log(r17544404);
double r17544406 = y;
double r17544407 = r17544405 * r17544406;
double r17544408 = t;
double r17544409 = 1.0;
double r17544410 = r17544408 - r17544409;
double r17544411 = a;
double r17544412 = log(r17544411);
double r17544413 = r17544410 * r17544412;
double r17544414 = r17544407 + r17544413;
double r17544415 = b;
double r17544416 = r17544414 - r17544415;
double r17544417 = pow(r17544403, r17544416);
double r17544418 = cbrt(r17544417);
double r17544419 = r17544418 * r17544418;
double r17544420 = cbrt(r17544406);
double r17544421 = r17544420 * r17544420;
double r17544422 = r17544419 / r17544421;
double r17544423 = r17544402 * r17544422;
double r17544424 = exp(r17544416);
double r17544425 = cbrt(r17544424);
double r17544426 = r17544425 / r17544420;
double r17544427 = r17544423 * r17544426;
return r17544427;
}




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 | 2.0 |
|---|---|
| Target | 10.8 |
| Herbie | 1.1 |
Initial program 2.0
rmApplied *-un-lft-identity2.0
Applied times-frac2.0
Simplified2.0
rmApplied add-cube-cbrt2.0
Applied add-cube-cbrt2.0
Applied times-frac2.0
Applied associate-*r*1.1
rmApplied *-un-lft-identity1.1
Applied exp-prod1.1
Simplified1.1
rmApplied *-un-lft-identity1.1
Applied exp-prod1.1
Simplified1.1
Final simplification1.1
herbie shell --seed 2019165
(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) (* 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) (* y (log z))))))
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))