x \cdot e^{y \cdot \left(\log z - t\right) + a \cdot \left(\log \left(1 - z\right) - b\right)}\left(x \cdot \sqrt{e^{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) \cdot \sqrt{e^{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)}}double f(double x, double y, double z, double t, double a, double b) {
double r108367 = x;
double r108368 = y;
double r108369 = z;
double r108370 = log(r108369);
double r108371 = t;
double r108372 = r108370 - r108371;
double r108373 = r108368 * r108372;
double r108374 = a;
double r108375 = 1.0;
double r108376 = r108375 - r108369;
double r108377 = log(r108376);
double r108378 = b;
double r108379 = r108377 - r108378;
double r108380 = r108374 * r108379;
double r108381 = r108373 + r108380;
double r108382 = exp(r108381);
double r108383 = r108367 * r108382;
return r108383;
}
double f(double x, double y, double z, double t, double a, double b) {
double r108384 = x;
double r108385 = y;
double r108386 = z;
double r108387 = log(r108386);
double r108388 = t;
double r108389 = r108387 - r108388;
double r108390 = r108385 * r108389;
double r108391 = a;
double r108392 = 1.0;
double r108393 = log(r108392);
double r108394 = 0.5;
double r108395 = 2.0;
double r108396 = pow(r108386, r108395);
double r108397 = pow(r108392, r108395);
double r108398 = r108396 / r108397;
double r108399 = r108394 * r108398;
double r108400 = r108392 * r108386;
double r108401 = r108399 + r108400;
double r108402 = r108393 - r108401;
double r108403 = b;
double r108404 = r108402 - r108403;
double r108405 = r108391 * r108404;
double r108406 = r108390 + r108405;
double r108407 = exp(r108406);
double r108408 = sqrt(r108407);
double r108409 = r108384 * r108408;
double r108410 = r108409 * r108408;
return r108410;
}



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
Applied associate-*r*0.5
Final simplification0.5
herbie shell --seed 2019305
(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))))))