\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 r241676 = x;
double r241677 = y;
double r241678 = z;
double r241679 = log(r241678);
double r241680 = r241677 * r241679;
double r241681 = t;
double r241682 = 1.0;
double r241683 = r241681 - r241682;
double r241684 = a;
double r241685 = log(r241684);
double r241686 = r241683 * r241685;
double r241687 = r241680 + r241686;
double r241688 = b;
double r241689 = r241687 - r241688;
double r241690 = exp(r241689);
double r241691 = r241676 * r241690;
double r241692 = r241691 / r241677;
return r241692;
}
double f(double x, double y, double z, double t, double a, double b) {
double r241693 = x;
double r241694 = y;
double r241695 = z;
double r241696 = log(r241695);
double r241697 = r241694 * r241696;
double r241698 = t;
double r241699 = 1.0;
double r241700 = r241698 - r241699;
double r241701 = a;
double r241702 = log(r241701);
double r241703 = r241700 * r241702;
double r241704 = r241697 + r241703;
double r241705 = b;
double r241706 = r241704 - r241705;
double r241707 = exp(r241706);
double r241708 = r241693 * r241707;
double r241709 = r241708 / r241694;
return r241709;
}




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.9 |
|---|---|
| Target | 11.3 |
| Herbie | 1.9 |
Initial program 1.9
Final simplification1.9
herbie shell --seed 2019326 +o rules:numerics
(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.8845848504127471) (/ (* x (/ (pow a (- t 1)) y)) (- (+ b 1) (* y (log z)))) (if (< t 852031.2288374073) (/ (* (/ 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))