\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)\frac{{\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}^{\left(\left(z - 1\right) + 0.5\right)}}{e^{\left(z - 1\right) + 7}} \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 r339635 = atan2(1.0, 0.0);
double r339636 = 2.0;
double r339637 = r339635 * r339636;
double r339638 = sqrt(r339637);
double r339639 = z;
double r339640 = 1.0;
double r339641 = r339639 - r339640;
double r339642 = 7.0;
double r339643 = r339641 + r339642;
double r339644 = 0.5;
double r339645 = r339643 + r339644;
double r339646 = r339641 + r339644;
double r339647 = pow(r339645, r339646);
double r339648 = r339638 * r339647;
double r339649 = -r339645;
double r339650 = exp(r339649);
double r339651 = r339648 * r339650;
double r339652 = 0.9999999999998099;
double r339653 = 676.5203681218851;
double r339654 = r339641 + r339640;
double r339655 = r339653 / r339654;
double r339656 = r339652 + r339655;
double r339657 = -1259.1392167224028;
double r339658 = r339641 + r339636;
double r339659 = r339657 / r339658;
double r339660 = r339656 + r339659;
double r339661 = 771.3234287776531;
double r339662 = 3.0;
double r339663 = r339641 + r339662;
double r339664 = r339661 / r339663;
double r339665 = r339660 + r339664;
double r339666 = -176.6150291621406;
double r339667 = 4.0;
double r339668 = r339641 + r339667;
double r339669 = r339666 / r339668;
double r339670 = r339665 + r339669;
double r339671 = 12.507343278686905;
double r339672 = 5.0;
double r339673 = r339641 + r339672;
double r339674 = r339671 / r339673;
double r339675 = r339670 + r339674;
double r339676 = -0.13857109526572012;
double r339677 = 6.0;
double r339678 = r339641 + r339677;
double r339679 = r339676 / r339678;
double r339680 = r339675 + r339679;
double r339681 = 9.984369578019572e-06;
double r339682 = r339681 / r339643;
double r339683 = r339680 + r339682;
double r339684 = 1.5056327351493116e-07;
double r339685 = 8.0;
double r339686 = r339641 + r339685;
double r339687 = r339684 / r339686;
double r339688 = r339683 + r339687;
double r339689 = r339651 * r339688;
return r339689;
}
double f(double z) {
double r339690 = z;
double r339691 = 1.0;
double r339692 = r339690 - r339691;
double r339693 = 7.0;
double r339694 = r339692 + r339693;
double r339695 = 0.5;
double r339696 = r339694 + r339695;
double r339697 = r339692 + r339695;
double r339698 = pow(r339696, r339697);
double r339699 = exp(r339694);
double r339700 = r339698 / r339699;
double r339701 = atan2(1.0, 0.0);
double r339702 = 2.0;
double r339703 = r339701 * r339702;
double r339704 = sqrt(r339703);
double r339705 = exp(r339695);
double r339706 = r339704 / r339705;
double r339707 = -176.6150291621406;
double r339708 = 4.0;
double r339709 = r339692 + r339708;
double r339710 = r339707 / r339709;
double r339711 = 676.5203681218851;
double r339712 = r339711 / r339690;
double r339713 = 0.9999999999998099;
double r339714 = r339712 + r339713;
double r339715 = -1259.1392167224028;
double r339716 = r339692 + r339702;
double r339717 = r339715 / r339716;
double r339718 = r339714 + r339717;
double r339719 = r339710 + r339718;
double r339720 = 771.3234287776531;
double r339721 = 3.0;
double r339722 = r339692 + r339721;
double r339723 = r339720 / r339722;
double r339724 = 12.507343278686905;
double r339725 = 5.0;
double r339726 = r339692 + r339725;
double r339727 = r339724 / r339726;
double r339728 = -0.13857109526572012;
double r339729 = 6.0;
double r339730 = r339692 + r339729;
double r339731 = r339728 / r339730;
double r339732 = r339727 + r339731;
double r339733 = 9.984369578019572e-06;
double r339734 = r339733 / r339694;
double r339735 = 1.5056327351493116e-07;
double r339736 = 8.0;
double r339737 = r339692 + r339736;
double r339738 = r339735 / r339737;
double r339739 = r339734 + r339738;
double r339740 = r339732 + r339739;
double r339741 = r339723 + r339740;
double r339742 = r339719 + r339741;
double r339743 = r339706 * r339742;
double r339744 = r339700 * r339743;
return r339744;
}



Bits error versus z
Results
Initial program 61.7
Simplified1.1
rmApplied exp-sum1.1
Applied times-frac0.9
Applied associate-*l*0.9
Final simplification0.9
herbie shell --seed 2019326
(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)))))