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 \log z + \mathsf{fma}\left(-t, y, \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)}double f(double x, double y, double z, double t, double a, double b) {
double r122299 = x;
double r122300 = y;
double r122301 = z;
double r122302 = log(r122301);
double r122303 = t;
double r122304 = r122302 - r122303;
double r122305 = r122300 * r122304;
double r122306 = a;
double r122307 = 1.0;
double r122308 = r122307 - r122301;
double r122309 = log(r122308);
double r122310 = b;
double r122311 = r122309 - r122310;
double r122312 = r122306 * r122311;
double r122313 = r122305 + r122312;
double r122314 = exp(r122313);
double r122315 = r122299 * r122314;
return r122315;
}
double f(double x, double y, double z, double t, double a, double b) {
double r122316 = x;
double r122317 = y;
double r122318 = z;
double r122319 = log(r122318);
double r122320 = r122317 * r122319;
double r122321 = t;
double r122322 = -r122321;
double r122323 = 1.0;
double r122324 = log(r122323);
double r122325 = 0.5;
double r122326 = 2.0;
double r122327 = pow(r122318, r122326);
double r122328 = pow(r122323, r122326);
double r122329 = r122327 / r122328;
double r122330 = r122323 * r122318;
double r122331 = fma(r122325, r122329, r122330);
double r122332 = b;
double r122333 = r122331 + r122332;
double r122334 = r122324 - r122333;
double r122335 = a;
double r122336 = r122334 * r122335;
double r122337 = fma(r122322, r122317, r122336);
double r122338 = r122320 + r122337;
double r122339 = exp(r122338);
double r122340 = r122316 * r122339;
return r122340;
}



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 1.9
Taylor expanded around 0 0.4
rmApplied sub-neg0.4
Applied distribute-lft-in0.5
Applied associate-+l+0.5
Simplified0.2
Final simplification0.2
herbie shell --seed 2020039 +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))))))