x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}x \cdot {\left({\left(e^{2}\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)}^{\frac{1}{2}}double f(double x, double y, double z, double t, double a, double b) {
double r115474 = x;
double r115475 = y;
double r115476 = z;
double r115477 = log(r115476);
double r115478 = t;
double r115479 = r115477 - r115478;
double r115480 = r115475 * r115479;
double r115481 = a;
double r115482 = 1.0;
double r115483 = r115482 - r115476;
double r115484 = log(r115483);
double r115485 = b;
double r115486 = r115484 - r115485;
double r115487 = r115481 * r115486;
double r115488 = r115480 + r115487;
double r115489 = exp(r115488);
double r115490 = r115474 * r115489;
return r115490;
}
double f(double x, double y, double z, double t, double a, double b) {
double r115491 = x;
double r115492 = 2.0;
double r115493 = exp(r115492);
double r115494 = y;
double r115495 = z;
double r115496 = log(r115495);
double r115497 = t;
double r115498 = r115496 - r115497;
double r115499 = r115494 * r115498;
double r115500 = a;
double r115501 = 1.0;
double r115502 = log(r115501);
double r115503 = 0.5;
double r115504 = pow(r115495, r115492);
double r115505 = pow(r115501, r115492);
double r115506 = r115504 / r115505;
double r115507 = r115503 * r115506;
double r115508 = r115501 * r115495;
double r115509 = r115507 + r115508;
double r115510 = r115502 - r115509;
double r115511 = b;
double r115512 = r115510 - r115511;
double r115513 = r115500 * r115512;
double r115514 = r115499 + r115513;
double r115515 = pow(r115493, r115514);
double r115516 = pow(r115515, r115503);
double r115517 = r115491 * r115516;
return r115517;
}



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 2.1
Taylor expanded around 0 0.5
rmApplied add-sqr-sqrt0.5
rmApplied *-un-lft-identity0.5
Applied exp-prod0.5
Applied sqrt-pow10.5
Applied *-un-lft-identity0.5
Applied exp-prod0.5
Applied sqrt-pow10.5
Applied pow-prod-down0.5
Simplified0.5
rmApplied div-inv0.5
Applied pow-unpow0.5
Final simplification0.5
herbie shell --seed 2020036
(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))))))