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 r133710 = x;
double r133711 = y;
double r133712 = z;
double r133713 = log(r133712);
double r133714 = t;
double r133715 = r133713 - r133714;
double r133716 = r133711 * r133715;
double r133717 = a;
double r133718 = 1.0;
double r133719 = r133718 - r133712;
double r133720 = log(r133719);
double r133721 = b;
double r133722 = r133720 - r133721;
double r133723 = r133717 * r133722;
double r133724 = r133716 + r133723;
double r133725 = exp(r133724);
double r133726 = r133710 * r133725;
return r133726;
}
double f(double x, double y, double z, double t, double a, double b) {
double r133727 = x;
double r133728 = 2.0;
double r133729 = exp(r133728);
double r133730 = y;
double r133731 = z;
double r133732 = log(r133731);
double r133733 = t;
double r133734 = r133732 - r133733;
double r133735 = r133730 * r133734;
double r133736 = a;
double r133737 = 1.0;
double r133738 = log(r133737);
double r133739 = 0.5;
double r133740 = pow(r133731, r133728);
double r133741 = pow(r133737, r133728);
double r133742 = r133740 / r133741;
double r133743 = r133739 * r133742;
double r133744 = r133737 * r133731;
double r133745 = r133743 + r133744;
double r133746 = r133738 - r133745;
double r133747 = b;
double r133748 = r133746 - r133747;
double r133749 = r133736 * r133748;
double r133750 = r133735 + r133749;
double r133751 = pow(r133729, r133750);
double r133752 = pow(r133751, r133739);
double r133753 = r133727 * r133752;
return r133753;
}



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))))))