\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 r16836491 = x;
double r16836492 = y;
double r16836493 = z;
double r16836494 = log(r16836493);
double r16836495 = r16836492 * r16836494;
double r16836496 = t;
double r16836497 = 1.0;
double r16836498 = r16836496 - r16836497;
double r16836499 = a;
double r16836500 = log(r16836499);
double r16836501 = r16836498 * r16836500;
double r16836502 = r16836495 + r16836501;
double r16836503 = b;
double r16836504 = r16836502 - r16836503;
double r16836505 = exp(r16836504);
double r16836506 = r16836491 * r16836505;
double r16836507 = r16836506 / r16836492;
return r16836507;
}
double f(double x, double y, double z, double t, double a, double b) {
double r16836508 = x;
double r16836509 = exp(1.0);
double r16836510 = a;
double r16836511 = log(r16836510);
double r16836512 = t;
double r16836513 = 1.0;
double r16836514 = r16836512 - r16836513;
double r16836515 = r16836511 * r16836514;
double r16836516 = z;
double r16836517 = log(r16836516);
double r16836518 = y;
double r16836519 = r16836517 * r16836518;
double r16836520 = r16836515 + r16836519;
double r16836521 = b;
double r16836522 = r16836520 - r16836521;
double r16836523 = pow(r16836509, r16836522);
double r16836524 = r16836508 * r16836523;
double r16836525 = r16836524 / r16836518;
double r16836526 = cbrt(r16836525);
double r16836527 = exp(r16836522);
double r16836528 = r16836508 * r16836527;
double r16836529 = r16836528 / r16836518;
double r16836530 = cbrt(r16836529);
double r16836531 = r16836530 * r16836530;
double r16836532 = r16836530 * r16836531;
double r16836533 = cbrt(r16836532);
double r16836534 = cbrt(r16836530);
double r16836535 = r16836534 * r16836534;
double r16836536 = r16836534 * r16836535;
double r16836537 = r16836533 * r16836536;
double r16836538 = r16836526 * r16836537;
return r16836538;
}




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 +o rules:numerics
(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))