\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.9999999999998099 + \frac{676.5203681218851}{\left(z - 1\right) + 1}\right) + \frac{-1259.1392167224028}{\left(z - 1\right) + 2}\right) + \frac{771.3234287776531}{\left(z - 1\right) + 3}\right) + \frac{-176.6150291621406}{\left(z - 1\right) + 4}\right) + \frac{12.507343278686905}{\left(z - 1\right) + 5}\right) + \frac{-0.13857109526572012}{\left(z - 1\right) + 6}\right) + \frac{9.984369578019572 \cdot 10^{-06}}{\left(z - 1\right) + 7}\right) + \frac{1.5056327351493116 \cdot 10^{-07}}{\left(z - 1\right) + 8}\right)\left(\frac{9.984369578019572 \cdot 10^{-06}}{\left(z - 1\right) + 7} + \frac{1.5056327351493116 \cdot 10^{-07}}{7 + z}\right) \cdot \left(\left(\sqrt{\pi} \cdot \left(\sqrt{2} \cdot {\left(6.5 + z\right)}^{\left(z - 0.5\right)}\right)\right) \cdot e^{-\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}\right) + \left(\left(\sqrt{\pi} \cdot \left(\sqrt{2} \cdot {\left(6.5 + z\right)}^{\left(z - 0.5\right)}\right)\right) \cdot e^{-\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}\right) \cdot \left(\frac{12.507343278686905}{z + 4} + \left(\frac{-0.13857109526572012}{z - -5} + \left(\left(\left(\frac{676.5203681218851}{z} + \left(0.9999999999998099 + \frac{-1259.1392167224028}{z - -1}\right)\right) + \frac{771.3234287776531}{z + 2}\right) + \frac{-176.6150291621406}{3 + z}\right)\right)\right)double f(double z) {
double r16264415 = atan2(1.0, 0.0);
double r16264416 = 2.0;
double r16264417 = r16264415 * r16264416;
double r16264418 = sqrt(r16264417);
double r16264419 = z;
double r16264420 = 1.0;
double r16264421 = r16264419 - r16264420;
double r16264422 = 7.0;
double r16264423 = r16264421 + r16264422;
double r16264424 = 0.5;
double r16264425 = r16264423 + r16264424;
double r16264426 = r16264421 + r16264424;
double r16264427 = pow(r16264425, r16264426);
double r16264428 = r16264418 * r16264427;
double r16264429 = -r16264425;
double r16264430 = exp(r16264429);
double r16264431 = r16264428 * r16264430;
double r16264432 = 0.9999999999998099;
double r16264433 = 676.5203681218851;
double r16264434 = r16264421 + r16264420;
double r16264435 = r16264433 / r16264434;
double r16264436 = r16264432 + r16264435;
double r16264437 = -1259.1392167224028;
double r16264438 = r16264421 + r16264416;
double r16264439 = r16264437 / r16264438;
double r16264440 = r16264436 + r16264439;
double r16264441 = 771.3234287776531;
double r16264442 = 3.0;
double r16264443 = r16264421 + r16264442;
double r16264444 = r16264441 / r16264443;
double r16264445 = r16264440 + r16264444;
double r16264446 = -176.6150291621406;
double r16264447 = 4.0;
double r16264448 = r16264421 + r16264447;
double r16264449 = r16264446 / r16264448;
double r16264450 = r16264445 + r16264449;
double r16264451 = 12.507343278686905;
double r16264452 = 5.0;
double r16264453 = r16264421 + r16264452;
double r16264454 = r16264451 / r16264453;
double r16264455 = r16264450 + r16264454;
double r16264456 = -0.13857109526572012;
double r16264457 = 6.0;
double r16264458 = r16264421 + r16264457;
double r16264459 = r16264456 / r16264458;
double r16264460 = r16264455 + r16264459;
double r16264461 = 9.984369578019572e-06;
double r16264462 = r16264461 / r16264423;
double r16264463 = r16264460 + r16264462;
double r16264464 = 1.5056327351493116e-07;
double r16264465 = 8.0;
double r16264466 = r16264421 + r16264465;
double r16264467 = r16264464 / r16264466;
double r16264468 = r16264463 + r16264467;
double r16264469 = r16264431 * r16264468;
return r16264469;
}
double f(double z) {
double r16264470 = 9.984369578019572e-06;
double r16264471 = z;
double r16264472 = 1.0;
double r16264473 = r16264471 - r16264472;
double r16264474 = 7.0;
double r16264475 = r16264473 + r16264474;
double r16264476 = r16264470 / r16264475;
double r16264477 = 1.5056327351493116e-07;
double r16264478 = r16264474 + r16264471;
double r16264479 = r16264477 / r16264478;
double r16264480 = r16264476 + r16264479;
double r16264481 = atan2(1.0, 0.0);
double r16264482 = sqrt(r16264481);
double r16264483 = 2.0;
double r16264484 = sqrt(r16264483);
double r16264485 = 6.5;
double r16264486 = r16264485 + r16264471;
double r16264487 = 0.5;
double r16264488 = r16264471 - r16264487;
double r16264489 = pow(r16264486, r16264488);
double r16264490 = r16264484 * r16264489;
double r16264491 = r16264482 * r16264490;
double r16264492 = r16264475 + r16264487;
double r16264493 = -r16264492;
double r16264494 = exp(r16264493);
double r16264495 = r16264491 * r16264494;
double r16264496 = r16264480 * r16264495;
double r16264497 = 12.507343278686905;
double r16264498 = 4.0;
double r16264499 = r16264471 + r16264498;
double r16264500 = r16264497 / r16264499;
double r16264501 = -0.13857109526572012;
double r16264502 = -5.0;
double r16264503 = r16264471 - r16264502;
double r16264504 = r16264501 / r16264503;
double r16264505 = 676.5203681218851;
double r16264506 = r16264505 / r16264471;
double r16264507 = 0.9999999999998099;
double r16264508 = -1259.1392167224028;
double r16264509 = -1.0;
double r16264510 = r16264471 - r16264509;
double r16264511 = r16264508 / r16264510;
double r16264512 = r16264507 + r16264511;
double r16264513 = r16264506 + r16264512;
double r16264514 = 771.3234287776531;
double r16264515 = r16264471 + r16264483;
double r16264516 = r16264514 / r16264515;
double r16264517 = r16264513 + r16264516;
double r16264518 = -176.6150291621406;
double r16264519 = 3.0;
double r16264520 = r16264519 + r16264471;
double r16264521 = r16264518 / r16264520;
double r16264522 = r16264517 + r16264521;
double r16264523 = r16264504 + r16264522;
double r16264524 = r16264500 + r16264523;
double r16264525 = r16264495 * r16264524;
double r16264526 = r16264496 + r16264525;
return r16264526;
}



Bits error versus z
Results
Initial program 59.8
Simplified0.8
Taylor expanded around inf 0.8
Taylor expanded around inf 0.8
Final simplification0.8
herbie shell --seed 2019120 +o rules:numerics
(FPCore (z)
:name "Jmat.Real.gamma, branch z greater than 0.5"
(* (* (* (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)))))