x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}e^{a \cdot \left(\left(\log 1 - \mathsf{fma}\left(\frac{1}{2}, \frac{\frac{z \cdot z}{1}}{1}, z \cdot 1\right)\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 r79685 = x;
double r79686 = y;
double r79687 = z;
double r79688 = log(r79687);
double r79689 = t;
double r79690 = r79688 - r79689;
double r79691 = r79686 * r79690;
double r79692 = a;
double r79693 = 1.0;
double r79694 = r79693 - r79687;
double r79695 = log(r79694);
double r79696 = b;
double r79697 = r79695 - r79696;
double r79698 = r79692 * r79697;
double r79699 = r79691 + r79698;
double r79700 = exp(r79699);
double r79701 = r79685 * r79700;
return r79701;
}
double f(double x, double y, double z, double t, double a, double b) {
double r79702 = a;
double r79703 = 1.0;
double r79704 = log(r79703);
double r79705 = 0.5;
double r79706 = z;
double r79707 = r79706 * r79706;
double r79708 = r79707 / r79703;
double r79709 = r79708 / r79703;
double r79710 = r79706 * r79703;
double r79711 = fma(r79705, r79709, r79710);
double r79712 = r79704 - r79711;
double r79713 = b;
double r79714 = r79712 - r79713;
double r79715 = r79702 * r79714;
double r79716 = log(r79706);
double r79717 = t;
double r79718 = r79716 - r79717;
double r79719 = y;
double r79720 = r79718 * r79719;
double r79721 = r79715 + r79720;
double r79722 = exp(r79721);
double r79723 = x;
double r79724 = r79722 * r79723;
return r79724;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a



Bits error versus b
Initial program 1.9
Taylor expanded around 0 0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019174 +o rules:numerics
(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))))))