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 r488 = x;
double r489 = y;
double r490 = z;
double r491 = log(r490);
double r492 = t;
double r493 = r491 - r492;
double r494 = r489 * r493;
double r495 = a;
double r496 = 1.0;
double r497 = r496 - r490;
double r498 = log(r497);
double r499 = b;
double r500 = r498 - r499;
double r501 = r495 * r500;
double r502 = r494 + r501;
double r503 = exp(r502);
double r504 = r488 * r503;
return r504;
}
double f(double x, double y, double z, double t, double a, double b) {
double r505 = x;
double r506 = y;
double r507 = z;
double r508 = log(r507);
double r509 = t;
double r510 = r508 - r509;
double r511 = r506 * r510;
double r512 = a;
double r513 = 1.0;
double r514 = log(r513);
double r515 = 0.5;
double r516 = 2.0;
double r517 = pow(r507, r516);
double r518 = pow(r513, r516);
double r519 = r517 / r518;
double r520 = r515 * r519;
double r521 = r513 * r507;
double r522 = r520 + r521;
double r523 = r514 - r522;
double r524 = b;
double r525 = r523 - r524;
double r526 = r512 * r525;
double r527 = r511 + r526;
double r528 = exp(r527);
double r529 = r505 * r528;
return r529;
}



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.9
Taylor expanded around 0 0.5
Final simplification0.5
herbie shell --seed 2020025
(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))))))