\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.9999999999998099298181841732002794742584 + \frac{676.5203681218850988443591631948947906494}{\left(z - 1\right) + 1}\right) + \frac{-1259.139216722402807135949842631816864014}{\left(z - 1\right) + 2}\right) + \frac{771.3234287776531346025876700878143310547}{\left(z - 1\right) + 3}\right) + \frac{-176.6150291621405870046146446838974952698}{\left(z - 1\right) + 4}\right) + \frac{12.50734327868690520801919774385169148445}{\left(z - 1\right) + 5}\right) + \frac{-0.1385710952657201178173096423051902092993}{\left(z - 1\right) + 6}\right) + \frac{9.984369578019571583242346146658263705831 \cdot 10^{-6}}{\left(z - 1\right) + 7}\right) + \frac{1.505632735149311617592788074479481785772 \cdot 10^{-7}}{\left(z - 1\right) + 8}\right)\left({\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}^{\left(\left(z - 1\right) + 0.5\right)} \cdot \frac{e^{-\left(z - 1\right)}}{e^{7}}\right) \cdot \left(\frac{\sqrt{\pi \cdot 2}}{e^{0.5}} \cdot \left(\left(\frac{-176.6150291621405870046146446838974952698}{\left(z - 1\right) + 4} + \left(\left(\frac{676.5203681218850988443591631948947906494}{z} + 0.9999999999998099298181841732002794742584\right) + \frac{-1259.139216722402807135949842631816864014}{\left(z - 1\right) + 2}\right)\right) + \left(\frac{771.3234287776531346025876700878143310547}{\left(z - 1\right) + 3} + \left(\left(\frac{12.50734327868690520801919774385169148445}{\left(z - 1\right) + 5} + \frac{-0.1385710952657201178173096423051902092993}{\left(z - 1\right) + 6}\right) + \left(\frac{9.984369578019571583242346146658263705831 \cdot 10^{-6}}{\left(z - 1\right) + 7} + \frac{1.505632735149311617592788074479481785772 \cdot 10^{-7}}{\left(z - 1\right) + 8}\right)\right)\right)\right)\right)double f(double z) {
double r315511 = atan2(1.0, 0.0);
double r315512 = 2.0;
double r315513 = r315511 * r315512;
double r315514 = sqrt(r315513);
double r315515 = z;
double r315516 = 1.0;
double r315517 = r315515 - r315516;
double r315518 = 7.0;
double r315519 = r315517 + r315518;
double r315520 = 0.5;
double r315521 = r315519 + r315520;
double r315522 = r315517 + r315520;
double r315523 = pow(r315521, r315522);
double r315524 = r315514 * r315523;
double r315525 = -r315521;
double r315526 = exp(r315525);
double r315527 = r315524 * r315526;
double r315528 = 0.9999999999998099;
double r315529 = 676.5203681218851;
double r315530 = r315517 + r315516;
double r315531 = r315529 / r315530;
double r315532 = r315528 + r315531;
double r315533 = -1259.1392167224028;
double r315534 = r315517 + r315512;
double r315535 = r315533 / r315534;
double r315536 = r315532 + r315535;
double r315537 = 771.3234287776531;
double r315538 = 3.0;
double r315539 = r315517 + r315538;
double r315540 = r315537 / r315539;
double r315541 = r315536 + r315540;
double r315542 = -176.6150291621406;
double r315543 = 4.0;
double r315544 = r315517 + r315543;
double r315545 = r315542 / r315544;
double r315546 = r315541 + r315545;
double r315547 = 12.507343278686905;
double r315548 = 5.0;
double r315549 = r315517 + r315548;
double r315550 = r315547 / r315549;
double r315551 = r315546 + r315550;
double r315552 = -0.13857109526572012;
double r315553 = 6.0;
double r315554 = r315517 + r315553;
double r315555 = r315552 / r315554;
double r315556 = r315551 + r315555;
double r315557 = 9.984369578019572e-06;
double r315558 = r315557 / r315519;
double r315559 = r315556 + r315558;
double r315560 = 1.5056327351493116e-07;
double r315561 = 8.0;
double r315562 = r315517 + r315561;
double r315563 = r315560 / r315562;
double r315564 = r315559 + r315563;
double r315565 = r315527 * r315564;
return r315565;
}
double f(double z) {
double r315566 = z;
double r315567 = 1.0;
double r315568 = r315566 - r315567;
double r315569 = 7.0;
double r315570 = r315568 + r315569;
double r315571 = 0.5;
double r315572 = r315570 + r315571;
double r315573 = r315568 + r315571;
double r315574 = pow(r315572, r315573);
double r315575 = -r315568;
double r315576 = exp(r315575);
double r315577 = exp(r315569);
double r315578 = r315576 / r315577;
double r315579 = r315574 * r315578;
double r315580 = atan2(1.0, 0.0);
double r315581 = 2.0;
double r315582 = r315580 * r315581;
double r315583 = sqrt(r315582);
double r315584 = exp(r315571);
double r315585 = r315583 / r315584;
double r315586 = -176.6150291621406;
double r315587 = 4.0;
double r315588 = r315568 + r315587;
double r315589 = r315586 / r315588;
double r315590 = 676.5203681218851;
double r315591 = r315590 / r315566;
double r315592 = 0.9999999999998099;
double r315593 = r315591 + r315592;
double r315594 = -1259.1392167224028;
double r315595 = r315568 + r315581;
double r315596 = r315594 / r315595;
double r315597 = r315593 + r315596;
double r315598 = r315589 + r315597;
double r315599 = 771.3234287776531;
double r315600 = 3.0;
double r315601 = r315568 + r315600;
double r315602 = r315599 / r315601;
double r315603 = 12.507343278686905;
double r315604 = 5.0;
double r315605 = r315568 + r315604;
double r315606 = r315603 / r315605;
double r315607 = -0.13857109526572012;
double r315608 = 6.0;
double r315609 = r315568 + r315608;
double r315610 = r315607 / r315609;
double r315611 = r315606 + r315610;
double r315612 = 9.984369578019572e-06;
double r315613 = r315612 / r315570;
double r315614 = 1.5056327351493116e-07;
double r315615 = 8.0;
double r315616 = r315568 + r315615;
double r315617 = r315614 / r315616;
double r315618 = r315613 + r315617;
double r315619 = r315611 + r315618;
double r315620 = r315602 + r315619;
double r315621 = r315598 + r315620;
double r315622 = r315585 * r315621;
double r315623 = r315579 * r315622;
return r315623;
}



Bits error versus z
Results
Initial program 61.7
Simplified1.2
rmApplied exp-sum1.2
Applied times-frac0.9
Applied associate-*l*1.0
rmApplied exp-sum0.9
Applied associate-/r*0.9
rmApplied *-un-lft-identity0.9
Applied div-inv1.0
Applied times-frac0.9
Simplified0.9
Simplified0.9
Final simplification0.9
herbie shell --seed 2019323
(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)))))