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(\mathsf{fma}\left(y, \log z - t, \left(\log 1 - \left(\mathsf{fma}\left(\frac{1}{2}, \frac{{z}^{2}}{{1}^{2}}, 1 \cdot z\right) + b\right)\right) \cdot a\right)\right)}\right)}^{\frac{1}{2}}double f(double x, double y, double z, double t, double a, double b) {
double r107009 = x;
double r107010 = y;
double r107011 = z;
double r107012 = log(r107011);
double r107013 = t;
double r107014 = r107012 - r107013;
double r107015 = r107010 * r107014;
double r107016 = a;
double r107017 = 1.0;
double r107018 = r107017 - r107011;
double r107019 = log(r107018);
double r107020 = b;
double r107021 = r107019 - r107020;
double r107022 = r107016 * r107021;
double r107023 = r107015 + r107022;
double r107024 = exp(r107023);
double r107025 = r107009 * r107024;
return r107025;
}
double f(double x, double y, double z, double t, double a, double b) {
double r107026 = x;
double r107027 = 2.0;
double r107028 = exp(r107027);
double r107029 = y;
double r107030 = z;
double r107031 = log(r107030);
double r107032 = t;
double r107033 = r107031 - r107032;
double r107034 = 1.0;
double r107035 = log(r107034);
double r107036 = 0.5;
double r107037 = pow(r107030, r107027);
double r107038 = pow(r107034, r107027);
double r107039 = r107037 / r107038;
double r107040 = r107034 * r107030;
double r107041 = fma(r107036, r107039, r107040);
double r107042 = b;
double r107043 = r107041 + r107042;
double r107044 = r107035 - r107043;
double r107045 = a;
double r107046 = r107044 * r107045;
double r107047 = fma(r107029, r107033, r107046);
double r107048 = pow(r107028, r107047);
double r107049 = pow(r107048, r107036);
double r107050 = r107026 * r107049;
return r107050;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a



Bits error versus b
Initial program 2.1
Taylor expanded around 0 0.5
rmApplied add-sqr-sqrt0.5
rmApplied pow10.5
Applied sqrt-pow10.5
Applied pow10.5
Applied sqrt-pow10.5
Applied pow-prod-down0.5
Simplified0.3
rmApplied add-log-exp0.3
Applied exp-to-pow0.3
Final simplification0.3
herbie shell --seed 2020036 +o rules:numerics
(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))))))