x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}x \cdot e^{\mathsf{fma}\left(y, \log z - t, \mathsf{fma}\left(\sqrt[3]{\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)} \cdot \sqrt[3]{\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)}, \sqrt[3]{\log 1 - \left(\frac{1}{2} \cdot \frac{{z}^{2}}{{1}^{2}} + 1 \cdot z\right)}, -b \cdot 1\right) \cdot a\right) + a \cdot \mathsf{fma}\left(-b, 1, b \cdot 1\right)}double f(double x, double y, double z, double t, double a, double b) {
double r389 = x;
double r390 = y;
double r391 = z;
double r392 = log(r391);
double r393 = t;
double r394 = r392 - r393;
double r395 = r390 * r394;
double r396 = a;
double r397 = 1.0;
double r398 = r397 - r391;
double r399 = log(r398);
double r400 = b;
double r401 = r399 - r400;
double r402 = r396 * r401;
double r403 = r395 + r402;
double r404 = exp(r403);
double r405 = r389 * r404;
return r405;
}
double f(double x, double y, double z, double t, double a, double b) {
double r406 = x;
double r407 = y;
double r408 = z;
double r409 = log(r408);
double r410 = t;
double r411 = r409 - r410;
double r412 = 1.0;
double r413 = log(r412);
double r414 = 0.5;
double r415 = 2.0;
double r416 = pow(r408, r415);
double r417 = pow(r412, r415);
double r418 = r416 / r417;
double r419 = r414 * r418;
double r420 = r412 * r408;
double r421 = r419 + r420;
double r422 = r413 - r421;
double r423 = cbrt(r422);
double r424 = r423 * r423;
double r425 = b;
double r426 = 1.0;
double r427 = r425 * r426;
double r428 = -r427;
double r429 = fma(r424, r423, r428);
double r430 = a;
double r431 = r429 * r430;
double r432 = fma(r407, r411, r431);
double r433 = -r425;
double r434 = fma(r433, r426, r427);
double r435 = r430 * r434;
double r436 = r432 + r435;
double r437 = exp(r436);
double r438 = r406 * r437;
return r438;
}



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.5
rmApplied *-un-lft-identity0.5
Applied add-cube-cbrt0.5
Applied prod-diff0.5
Applied distribute-lft-in0.5
Applied associate-+r+0.5
Simplified0.2
Final simplification0.2
herbie shell --seed 2020025 +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))))))