\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}\frac{x \cdot e^{\left(y \cdot \log z + \left(t - 1\right) \cdot \log a\right) - b}}{y}double f(double x, double y, double z, double t, double a, double b) {
double r301556 = x;
double r301557 = y;
double r301558 = z;
double r301559 = log(r301558);
double r301560 = r301557 * r301559;
double r301561 = t;
double r301562 = 1.0;
double r301563 = r301561 - r301562;
double r301564 = a;
double r301565 = log(r301564);
double r301566 = r301563 * r301565;
double r301567 = r301560 + r301566;
double r301568 = b;
double r301569 = r301567 - r301568;
double r301570 = exp(r301569);
double r301571 = r301556 * r301570;
double r301572 = r301571 / r301557;
return r301572;
}
double f(double x, double y, double z, double t, double a, double b) {
double r301573 = x;
double r301574 = y;
double r301575 = z;
double r301576 = log(r301575);
double r301577 = r301574 * r301576;
double r301578 = t;
double r301579 = 1.0;
double r301580 = r301578 - r301579;
double r301581 = a;
double r301582 = log(r301581);
double r301583 = r301580 * r301582;
double r301584 = r301577 + r301583;
double r301585 = b;
double r301586 = r301584 - r301585;
double r301587 = exp(r301586);
double r301588 = r301573 * r301587;
double r301589 = r301588 / r301574;
return r301589;
}




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 | 11.2 |
| Herbie | 2.0 |
Initial program 2.0
Final simplification2.0
herbie shell --seed 2019303
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2, A"
:precision binary64
:herbie-target
(if (< t -0.88458485041274715) (/ (* x (/ (pow a (- t 1)) y)) (- (+ b 1) (* y (log z)))) (if (< t 852031.22883740731) (/ (* (/ x y) (pow a (- t 1))) (exp (- b (* (log z) y)))) (/ (* x (/ (pow a (- t 1)) y)) (- (+ b 1) (* y (log z))))))
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1) (log a))) b))) y))