\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 r326742 = atan2(1.0, 0.0);
double r326743 = 2.0;
double r326744 = r326742 * r326743;
double r326745 = sqrt(r326744);
double r326746 = z;
double r326747 = 1.0;
double r326748 = r326746 - r326747;
double r326749 = 7.0;
double r326750 = r326748 + r326749;
double r326751 = 0.5;
double r326752 = r326750 + r326751;
double r326753 = r326748 + r326751;
double r326754 = pow(r326752, r326753);
double r326755 = r326745 * r326754;
double r326756 = -r326752;
double r326757 = exp(r326756);
double r326758 = r326755 * r326757;
double r326759 = 0.9999999999998099;
double r326760 = 676.5203681218851;
double r326761 = r326748 + r326747;
double r326762 = r326760 / r326761;
double r326763 = r326759 + r326762;
double r326764 = -1259.1392167224028;
double r326765 = r326748 + r326743;
double r326766 = r326764 / r326765;
double r326767 = r326763 + r326766;
double r326768 = 771.3234287776531;
double r326769 = 3.0;
double r326770 = r326748 + r326769;
double r326771 = r326768 / r326770;
double r326772 = r326767 + r326771;
double r326773 = -176.6150291621406;
double r326774 = 4.0;
double r326775 = r326748 + r326774;
double r326776 = r326773 / r326775;
double r326777 = r326772 + r326776;
double r326778 = 12.507343278686905;
double r326779 = 5.0;
double r326780 = r326748 + r326779;
double r326781 = r326778 / r326780;
double r326782 = r326777 + r326781;
double r326783 = -0.13857109526572012;
double r326784 = 6.0;
double r326785 = r326748 + r326784;
double r326786 = r326783 / r326785;
double r326787 = r326782 + r326786;
double r326788 = 9.984369578019572e-06;
double r326789 = r326788 / r326750;
double r326790 = r326787 + r326789;
double r326791 = 1.5056327351493116e-07;
double r326792 = 8.0;
double r326793 = r326748 + r326792;
double r326794 = r326791 / r326793;
double r326795 = r326790 + r326794;
double r326796 = r326758 * r326795;
return r326796;
}
double f(double z) {
double r326797 = z;
double r326798 = 1.0;
double r326799 = r326797 - r326798;
double r326800 = 7.0;
double r326801 = r326799 + r326800;
double r326802 = 0.5;
double r326803 = r326801 + r326802;
double r326804 = r326799 + r326802;
double r326805 = pow(r326803, r326804);
double r326806 = -r326799;
double r326807 = exp(r326806);
double r326808 = exp(r326800);
double r326809 = r326807 / r326808;
double r326810 = r326805 * r326809;
double r326811 = atan2(1.0, 0.0);
double r326812 = 2.0;
double r326813 = r326811 * r326812;
double r326814 = sqrt(r326813);
double r326815 = exp(r326802);
double r326816 = r326814 / r326815;
double r326817 = -176.6150291621406;
double r326818 = 4.0;
double r326819 = r326799 + r326818;
double r326820 = r326817 / r326819;
double r326821 = 676.5203681218851;
double r326822 = r326821 / r326797;
double r326823 = 0.9999999999998099;
double r326824 = r326822 + r326823;
double r326825 = -1259.1392167224028;
double r326826 = r326799 + r326812;
double r326827 = r326825 / r326826;
double r326828 = r326824 + r326827;
double r326829 = r326820 + r326828;
double r326830 = 771.3234287776531;
double r326831 = 3.0;
double r326832 = r326799 + r326831;
double r326833 = r326830 / r326832;
double r326834 = 12.507343278686905;
double r326835 = 5.0;
double r326836 = r326799 + r326835;
double r326837 = r326834 / r326836;
double r326838 = -0.13857109526572012;
double r326839 = 6.0;
double r326840 = r326799 + r326839;
double r326841 = r326838 / r326840;
double r326842 = r326837 + r326841;
double r326843 = 9.984369578019572e-06;
double r326844 = r326843 / r326801;
double r326845 = 1.5056327351493116e-07;
double r326846 = 8.0;
double r326847 = r326799 + r326846;
double r326848 = r326845 / r326847;
double r326849 = r326844 + r326848;
double r326850 = r326842 + r326849;
double r326851 = r326833 + r326850;
double r326852 = r326829 + r326851;
double r326853 = r326816 * r326852;
double r326854 = r326810 * r326853;
return r326854;
}



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)))))