x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}\begin{array}{l}
\mathbf{if}\;y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right) \le 1.27014180708108552443277861065951128694 \cdot 10^{-4}:\\
\;\;\;\;x \cdot \left({\left(\sqrt{e}\right)}^{\left(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)\right)} \cdot {\left(\sqrt{e}\right)}^{\left(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)\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot {e}^{\left(-\left(a \cdot b + \left(1 \cdot \left(a \cdot z\right) + 0.5 \cdot \left(a \cdot {z}^{2}\right)\right)\right)\right)}\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r97396 = x;
double r97397 = y;
double r97398 = z;
double r97399 = log(r97398);
double r97400 = t;
double r97401 = r97399 - r97400;
double r97402 = r97397 * r97401;
double r97403 = a;
double r97404 = 1.0;
double r97405 = r97404 - r97398;
double r97406 = log(r97405);
double r97407 = b;
double r97408 = r97406 - r97407;
double r97409 = r97403 * r97408;
double r97410 = r97402 + r97409;
double r97411 = exp(r97410);
double r97412 = r97396 * r97411;
return r97412;
}
double f(double x, double y, double z, double t, double a, double b) {
double r97413 = y;
double r97414 = z;
double r97415 = log(r97414);
double r97416 = t;
double r97417 = r97415 - r97416;
double r97418 = r97413 * r97417;
double r97419 = a;
double r97420 = 1.0;
double r97421 = r97420 - r97414;
double r97422 = log(r97421);
double r97423 = b;
double r97424 = r97422 - r97423;
double r97425 = r97419 * r97424;
double r97426 = r97418 + r97425;
double r97427 = 0.00012701418070810855;
bool r97428 = r97426 <= r97427;
double r97429 = x;
double r97430 = exp(1.0);
double r97431 = sqrt(r97430);
double r97432 = log(r97420);
double r97433 = 0.5;
double r97434 = 2.0;
double r97435 = pow(r97414, r97434);
double r97436 = pow(r97420, r97434);
double r97437 = r97435 / r97436;
double r97438 = r97433 * r97437;
double r97439 = r97420 * r97414;
double r97440 = r97438 + r97439;
double r97441 = r97432 - r97440;
double r97442 = r97441 - r97423;
double r97443 = r97419 * r97442;
double r97444 = r97418 + r97443;
double r97445 = pow(r97431, r97444);
double r97446 = r97445 * r97445;
double r97447 = r97429 * r97446;
double r97448 = r97419 * r97423;
double r97449 = r97419 * r97414;
double r97450 = r97420 * r97449;
double r97451 = 0.5;
double r97452 = r97419 * r97435;
double r97453 = r97451 * r97452;
double r97454 = r97450 + r97453;
double r97455 = r97448 + r97454;
double r97456 = -r97455;
double r97457 = pow(r97430, r97456);
double r97458 = r97429 * r97457;
double r97459 = r97428 ? r97447 : r97458;
return r97459;
}



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
if (+ (* y (- (log z) t)) (* a (- (log (- 1.0 z)) b))) < 0.00012701418070810855Initial program 0.7
Taylor expanded around 0 0.0
rmApplied *-un-lft-identity0.0
Applied exp-prod0.0
Simplified0.0
rmApplied add-sqr-sqrt0.0
Applied unpow-prod-down0.0
if 0.00012701418070810855 < (+ (* y (- (log z) t)) (* a (- (log (- 1.0 z)) b))) Initial program 53.1
Taylor expanded around 0 20.2
rmApplied *-un-lft-identity20.2
Applied exp-prod20.2
Simplified20.2
Taylor expanded around inf 14.2
Final simplification0.4
herbie shell --seed 2019322
(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))))))