x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\left(\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)\right) - b\right)}double f(double x, double y, double z, double t, double a, double b) {
double r81532 = x;
double r81533 = y;
double r81534 = z;
double r81535 = log(r81534);
double r81536 = t;
double r81537 = r81535 - r81536;
double r81538 = r81533 * r81537;
double r81539 = a;
double r81540 = 1.0;
double r81541 = r81540 - r81534;
double r81542 = log(r81541);
double r81543 = b;
double r81544 = r81542 - r81543;
double r81545 = r81539 * r81544;
double r81546 = r81538 + r81545;
double r81547 = exp(r81546);
double r81548 = r81532 * r81547;
return r81548;
}
double f(double x, double y, double z, double t, double a, double b) {
double r81549 = x;
double r81550 = y;
double r81551 = z;
double r81552 = log(r81551);
double r81553 = t;
double r81554 = r81552 - r81553;
double r81555 = r81550 * r81554;
double r81556 = a;
double r81557 = 1.0;
double r81558 = log(r81557);
double r81559 = 0.5;
double r81560 = 2.0;
double r81561 = pow(r81551, r81560);
double r81562 = pow(r81557, r81560);
double r81563 = r81561 / r81562;
double r81564 = r81559 * r81563;
double r81565 = r81557 * r81551;
double r81566 = r81564 + r81565;
double r81567 = r81558 - r81566;
double r81568 = b;
double r81569 = r81567 - r81568;
double r81570 = r81556 * r81569;
double r81571 = r81555 + r81570;
double r81572 = exp(r81571);
double r81573 = r81549 * r81572;
return r81573;
}



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
Final simplification0.4
herbie shell --seed 2020060
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaApprox from math-functions-0.1.5.2, B"
:precision binary64
(* x (exp (+ (* y (- (log z) t)) (* a (- (log (- 1 z)) b))))))