\left(\left(\sqrt{\pi \cdot 2} \cdot {\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}^{\left(\left(z - 1\right) + 0.5\right)}\right) \cdot e^{-\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}\right) \cdot \left(\left(\left(\left(\left(\left(\left(\left(0.99999999999980993 + \frac{676.520368121885099}{\left(z - 1\right) + 1}\right) + \frac{-1259.13921672240281}{\left(z - 1\right) + 2}\right) + \frac{771.32342877765313}{\left(z - 1\right) + 3}\right) + \frac{-176.615029162140587}{\left(z - 1\right) + 4}\right) + \frac{12.5073432786869052}{\left(z - 1\right) + 5}\right) + \frac{-0.138571095265720118}{\left(z - 1\right) + 6}\right) + \frac{9.98436957801957158 \cdot 10^{-6}}{\left(z - 1\right) + 7}\right) + \frac{1.50563273514931162 \cdot 10^{-7}}{\left(z - 1\right) + 8}\right)\left(\left(\sqrt{\pi \cdot 2} \cdot {\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}^{\left(\left(z - 1\right) + 0.5\right)}\right) \cdot e^{-\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}\right) \cdot \left(\left(\left(\left(\left(\left(\left(\left(0.99999999999980993 + \frac{676.520368121885099}{z - 0}\right) + \frac{-1259.13921672240281}{\left(z - 1\right) + 2}\right) + \frac{771.32342877765313}{\left(z - 1\right) + 3}\right) + \frac{-176.615029162140587}{\left(z - 1\right) + 4}\right) + \frac{12.5073432786869052}{\left(z - 1\right) + 5}\right) + \frac{-0.138571095265720118}{\left(z - 1\right) + 6}\right) + \frac{9.98436957801957158 \cdot 10^{-6}}{\left(z - 1\right) + 7}\right) + \frac{1.50563273514931162 \cdot 10^{-7}}{\left(z - 1\right) + 8}\right)double f(double z) {
double r168390 = atan2(1.0, 0.0);
double r168391 = 2.0;
double r168392 = r168390 * r168391;
double r168393 = sqrt(r168392);
double r168394 = z;
double r168395 = 1.0;
double r168396 = r168394 - r168395;
double r168397 = 7.0;
double r168398 = r168396 + r168397;
double r168399 = 0.5;
double r168400 = r168398 + r168399;
double r168401 = r168396 + r168399;
double r168402 = pow(r168400, r168401);
double r168403 = r168393 * r168402;
double r168404 = -r168400;
double r168405 = exp(r168404);
double r168406 = r168403 * r168405;
double r168407 = 0.9999999999998099;
double r168408 = 676.5203681218851;
double r168409 = r168396 + r168395;
double r168410 = r168408 / r168409;
double r168411 = r168407 + r168410;
double r168412 = -1259.1392167224028;
double r168413 = r168396 + r168391;
double r168414 = r168412 / r168413;
double r168415 = r168411 + r168414;
double r168416 = 771.3234287776531;
double r168417 = 3.0;
double r168418 = r168396 + r168417;
double r168419 = r168416 / r168418;
double r168420 = r168415 + r168419;
double r168421 = -176.6150291621406;
double r168422 = 4.0;
double r168423 = r168396 + r168422;
double r168424 = r168421 / r168423;
double r168425 = r168420 + r168424;
double r168426 = 12.507343278686905;
double r168427 = 5.0;
double r168428 = r168396 + r168427;
double r168429 = r168426 / r168428;
double r168430 = r168425 + r168429;
double r168431 = -0.13857109526572012;
double r168432 = 6.0;
double r168433 = r168396 + r168432;
double r168434 = r168431 / r168433;
double r168435 = r168430 + r168434;
double r168436 = 9.984369578019572e-06;
double r168437 = r168436 / r168398;
double r168438 = r168435 + r168437;
double r168439 = 1.5056327351493116e-07;
double r168440 = 8.0;
double r168441 = r168396 + r168440;
double r168442 = r168439 / r168441;
double r168443 = r168438 + r168442;
double r168444 = r168406 * r168443;
return r168444;
}
double f(double z) {
double r168445 = atan2(1.0, 0.0);
double r168446 = 2.0;
double r168447 = r168445 * r168446;
double r168448 = sqrt(r168447);
double r168449 = z;
double r168450 = 1.0;
double r168451 = r168449 - r168450;
double r168452 = 7.0;
double r168453 = r168451 + r168452;
double r168454 = 0.5;
double r168455 = r168453 + r168454;
double r168456 = r168451 + r168454;
double r168457 = pow(r168455, r168456);
double r168458 = r168448 * r168457;
double r168459 = -r168455;
double r168460 = exp(r168459);
double r168461 = r168458 * r168460;
double r168462 = 0.9999999999998099;
double r168463 = 676.5203681218851;
double r168464 = 0.0;
double r168465 = r168449 - r168464;
double r168466 = r168463 / r168465;
double r168467 = r168462 + r168466;
double r168468 = -1259.1392167224028;
double r168469 = r168451 + r168446;
double r168470 = r168468 / r168469;
double r168471 = r168467 + r168470;
double r168472 = 771.3234287776531;
double r168473 = 3.0;
double r168474 = r168451 + r168473;
double r168475 = r168472 / r168474;
double r168476 = r168471 + r168475;
double r168477 = -176.6150291621406;
double r168478 = 4.0;
double r168479 = r168451 + r168478;
double r168480 = r168477 / r168479;
double r168481 = r168476 + r168480;
double r168482 = 12.507343278686905;
double r168483 = 5.0;
double r168484 = r168451 + r168483;
double r168485 = r168482 / r168484;
double r168486 = r168481 + r168485;
double r168487 = -0.13857109526572012;
double r168488 = 6.0;
double r168489 = r168451 + r168488;
double r168490 = r168487 / r168489;
double r168491 = r168486 + r168490;
double r168492 = 9.984369578019572e-06;
double r168493 = r168492 / r168453;
double r168494 = r168491 + r168493;
double r168495 = 1.5056327351493116e-07;
double r168496 = 8.0;
double r168497 = r168451 + r168496;
double r168498 = r168495 / r168497;
double r168499 = r168494 + r168498;
double r168500 = r168461 * r168499;
return r168500;
}



Bits error versus z
Results
Initial program 61.8
rmApplied associate-+l-1.0
Simplified1.0
Final simplification1.0
herbie shell --seed 2020059 +o rules:numerics
(FPCore (z)
:name "Jmat.Real.gamma, branch z greater than 0.5"
:precision binary64
(* (* (* (sqrt (* PI 2)) (pow (+ (+ (- z 1) 7) 0.5) (+ (- z 1) 0.5))) (exp (- (+ (+ (- z 1) 7) 0.5)))) (+ (+ (+ (+ (+ (+ (+ (+ 0.9999999999998099 (/ 676.5203681218851 (+ (- z 1) 1))) (/ -1259.1392167224028 (+ (- z 1) 2))) (/ 771.3234287776531 (+ (- z 1) 3))) (/ -176.6150291621406 (+ (- z 1) 4))) (/ 12.507343278686905 (+ (- z 1) 5))) (/ -0.13857109526572012 (+ (- z 1) 6))) (/ 9.984369578019572e-06 (+ (- z 1) 7))) (/ 1.5056327351493116e-07 (+ (- z 1) 8)))))