\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)\frac{\sqrt{\pi \cdot 2} \cdot {\left(0.5 + \left(z - -6\right)\right)}^{\left(0.5 + \left(z - 1\right)\right)}}{\sqrt{e^{0.5 + \left(z - -6\right)}}} \cdot \left(\mathsf{fma}\left(676.5203681218851, \sqrt{e^{-6.5}} \cdot \frac{1}{z}, \left(z \cdot \sqrt{e^{-6.5}}\right) \cdot 1633.8461589982119\right) - 1266.51023949571 \cdot \sqrt{e^{-6.5}}\right)double f(double z) {
double r10754805 = atan2(1.0, 0.0);
double r10754806 = 2.0;
double r10754807 = r10754805 * r10754806;
double r10754808 = sqrt(r10754807);
double r10754809 = z;
double r10754810 = 1.0;
double r10754811 = r10754809 - r10754810;
double r10754812 = 7.0;
double r10754813 = r10754811 + r10754812;
double r10754814 = 0.5;
double r10754815 = r10754813 + r10754814;
double r10754816 = r10754811 + r10754814;
double r10754817 = pow(r10754815, r10754816);
double r10754818 = r10754808 * r10754817;
double r10754819 = -r10754815;
double r10754820 = exp(r10754819);
double r10754821 = r10754818 * r10754820;
double r10754822 = 0.9999999999998099;
double r10754823 = 676.5203681218851;
double r10754824 = r10754811 + r10754810;
double r10754825 = r10754823 / r10754824;
double r10754826 = r10754822 + r10754825;
double r10754827 = -1259.1392167224028;
double r10754828 = r10754811 + r10754806;
double r10754829 = r10754827 / r10754828;
double r10754830 = r10754826 + r10754829;
double r10754831 = 771.3234287776531;
double r10754832 = 3.0;
double r10754833 = r10754811 + r10754832;
double r10754834 = r10754831 / r10754833;
double r10754835 = r10754830 + r10754834;
double r10754836 = -176.6150291621406;
double r10754837 = 4.0;
double r10754838 = r10754811 + r10754837;
double r10754839 = r10754836 / r10754838;
double r10754840 = r10754835 + r10754839;
double r10754841 = 12.507343278686905;
double r10754842 = 5.0;
double r10754843 = r10754811 + r10754842;
double r10754844 = r10754841 / r10754843;
double r10754845 = r10754840 + r10754844;
double r10754846 = -0.13857109526572012;
double r10754847 = 6.0;
double r10754848 = r10754811 + r10754847;
double r10754849 = r10754846 / r10754848;
double r10754850 = r10754845 + r10754849;
double r10754851 = 9.984369578019572e-06;
double r10754852 = r10754851 / r10754813;
double r10754853 = r10754850 + r10754852;
double r10754854 = 1.5056327351493116e-07;
double r10754855 = 8.0;
double r10754856 = r10754811 + r10754855;
double r10754857 = r10754854 / r10754856;
double r10754858 = r10754853 + r10754857;
double r10754859 = r10754821 * r10754858;
return r10754859;
}
double f(double z) {
double r10754860 = atan2(1.0, 0.0);
double r10754861 = 2.0;
double r10754862 = r10754860 * r10754861;
double r10754863 = sqrt(r10754862);
double r10754864 = 0.5;
double r10754865 = z;
double r10754866 = -6.0;
double r10754867 = r10754865 - r10754866;
double r10754868 = r10754864 + r10754867;
double r10754869 = 1.0;
double r10754870 = r10754865 - r10754869;
double r10754871 = r10754864 + r10754870;
double r10754872 = pow(r10754868, r10754871);
double r10754873 = r10754863 * r10754872;
double r10754874 = exp(r10754868);
double r10754875 = sqrt(r10754874);
double r10754876 = r10754873 / r10754875;
double r10754877 = 676.5203681218851;
double r10754878 = 6.5;
double r10754879 = -r10754878;
double r10754880 = exp(r10754879);
double r10754881 = sqrt(r10754880);
double r10754882 = r10754869 / r10754865;
double r10754883 = r10754881 * r10754882;
double r10754884 = r10754865 * r10754881;
double r10754885 = 1633.8461589982119;
double r10754886 = r10754884 * r10754885;
double r10754887 = fma(r10754877, r10754883, r10754886);
double r10754888 = 1266.51023949571;
double r10754889 = r10754888 * r10754881;
double r10754890 = r10754887 - r10754889;
double r10754891 = r10754876 * r10754890;
return r10754891;
}



Bits error versus z
Initial program 60.0
Simplified1.1
rmApplied add-sqr-sqrt1.1
Applied times-frac0.9
rmApplied frac-times1.1
Applied associate-*l/0.9
rmApplied times-frac0.9
Taylor expanded around 0 1.3
Simplified1.3
Final simplification1.3
herbie shell --seed 2019152 +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)))))