x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1.0 - z\right) - b\right)}e^{a \cdot \left(\left(\left(\log 1.0 - \left(\frac{z}{1.0} \cdot \frac{z}{1.0}\right) \cdot \frac{1}{2}\right) - z \cdot 1.0\right) - b\right) + \left(\log z - t\right) \cdot y} \cdot xdouble f(double x, double y, double z, double t, double a, double b) {
double r5598559 = x;
double r5598560 = y;
double r5598561 = z;
double r5598562 = log(r5598561);
double r5598563 = t;
double r5598564 = r5598562 - r5598563;
double r5598565 = r5598560 * r5598564;
double r5598566 = a;
double r5598567 = 1.0;
double r5598568 = r5598567 - r5598561;
double r5598569 = log(r5598568);
double r5598570 = b;
double r5598571 = r5598569 - r5598570;
double r5598572 = r5598566 * r5598571;
double r5598573 = r5598565 + r5598572;
double r5598574 = exp(r5598573);
double r5598575 = r5598559 * r5598574;
return r5598575;
}
double f(double x, double y, double z, double t, double a, double b) {
double r5598576 = a;
double r5598577 = 1.0;
double r5598578 = log(r5598577);
double r5598579 = z;
double r5598580 = r5598579 / r5598577;
double r5598581 = r5598580 * r5598580;
double r5598582 = 0.5;
double r5598583 = r5598581 * r5598582;
double r5598584 = r5598578 - r5598583;
double r5598585 = r5598579 * r5598577;
double r5598586 = r5598584 - r5598585;
double r5598587 = b;
double r5598588 = r5598586 - r5598587;
double r5598589 = r5598576 * r5598588;
double r5598590 = log(r5598579);
double r5598591 = t;
double r5598592 = r5598590 - r5598591;
double r5598593 = y;
double r5598594 = r5598592 * r5598593;
double r5598595 = r5598589 + r5598594;
double r5598596 = exp(r5598595);
double r5598597 = x;
double r5598598 = r5598596 * r5598597;
return r5598598;
}



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
Initial program 1.8
Taylor expanded around 0 0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019158
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaApprox from math-functions-0.1.5.2, B"
(* x (exp (+ (* y (- (log z) t)) (* a (- (log (- 1.0 z)) b))))))