\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(\frac{{\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}^{\left(\left(z - 1\right) + 0.5\right)} \cdot \sqrt{\pi \cdot 2}}{e^{z}} \cdot e^{\left(1 - 7\right) - 0.5}\right) \cdot \left(\left(\left(\frac{676.5203681218850988443591631948947906494}{z} + 0.9999999999998099298181841732002794742584\right) + \frac{-1259.139216722402807135949842631816864014}{\left(z - 1\right) + 2}\right) + \left(\left(\left(\frac{771.3234287776531346025876700878143310547}{\left(z - 1\right) + 3} + \frac{-176.6150291621405870046146446838974952698}{\left(z - 1\right) + 4}\right) + \frac{12.50734327868690520801919774385169148445}{\left(z - 1\right) + 5}\right) + \left(\left(\frac{-0.1385710952657201178173096423051902092993}{\left(z - 1\right) + 6} + \frac{9.984369578019571583242346146658263705831 \cdot 10^{-6}}{\left(z - 1\right) + 7}\right) + \frac{1.505632735149311617592788074479481785772 \cdot 10^{-7}}{\left(z - 1\right) + 8}\right)\right)\right)double f(double z) {
double r189795 = atan2(1.0, 0.0);
double r189796 = 2.0;
double r189797 = r189795 * r189796;
double r189798 = sqrt(r189797);
double r189799 = z;
double r189800 = 1.0;
double r189801 = r189799 - r189800;
double r189802 = 7.0;
double r189803 = r189801 + r189802;
double r189804 = 0.5;
double r189805 = r189803 + r189804;
double r189806 = r189801 + r189804;
double r189807 = pow(r189805, r189806);
double r189808 = r189798 * r189807;
double r189809 = -r189805;
double r189810 = exp(r189809);
double r189811 = r189808 * r189810;
double r189812 = 0.9999999999998099;
double r189813 = 676.5203681218851;
double r189814 = r189801 + r189800;
double r189815 = r189813 / r189814;
double r189816 = r189812 + r189815;
double r189817 = -1259.1392167224028;
double r189818 = r189801 + r189796;
double r189819 = r189817 / r189818;
double r189820 = r189816 + r189819;
double r189821 = 771.3234287776531;
double r189822 = 3.0;
double r189823 = r189801 + r189822;
double r189824 = r189821 / r189823;
double r189825 = r189820 + r189824;
double r189826 = -176.6150291621406;
double r189827 = 4.0;
double r189828 = r189801 + r189827;
double r189829 = r189826 / r189828;
double r189830 = r189825 + r189829;
double r189831 = 12.507343278686905;
double r189832 = 5.0;
double r189833 = r189801 + r189832;
double r189834 = r189831 / r189833;
double r189835 = r189830 + r189834;
double r189836 = -0.13857109526572012;
double r189837 = 6.0;
double r189838 = r189801 + r189837;
double r189839 = r189836 / r189838;
double r189840 = r189835 + r189839;
double r189841 = 9.984369578019572e-06;
double r189842 = r189841 / r189803;
double r189843 = r189840 + r189842;
double r189844 = 1.5056327351493116e-07;
double r189845 = 8.0;
double r189846 = r189801 + r189845;
double r189847 = r189844 / r189846;
double r189848 = r189843 + r189847;
double r189849 = r189811 * r189848;
return r189849;
}
double f(double z) {
double r189850 = z;
double r189851 = 1.0;
double r189852 = r189850 - r189851;
double r189853 = 7.0;
double r189854 = r189852 + r189853;
double r189855 = 0.5;
double r189856 = r189854 + r189855;
double r189857 = r189852 + r189855;
double r189858 = pow(r189856, r189857);
double r189859 = atan2(1.0, 0.0);
double r189860 = 2.0;
double r189861 = r189859 * r189860;
double r189862 = sqrt(r189861);
double r189863 = r189858 * r189862;
double r189864 = exp(r189850);
double r189865 = r189863 / r189864;
double r189866 = r189851 - r189853;
double r189867 = r189866 - r189855;
double r189868 = exp(r189867);
double r189869 = r189865 * r189868;
double r189870 = 676.5203681218851;
double r189871 = r189870 / r189850;
double r189872 = 0.9999999999998099;
double r189873 = r189871 + r189872;
double r189874 = -1259.1392167224028;
double r189875 = r189852 + r189860;
double r189876 = r189874 / r189875;
double r189877 = r189873 + r189876;
double r189878 = 771.3234287776531;
double r189879 = 3.0;
double r189880 = r189852 + r189879;
double r189881 = r189878 / r189880;
double r189882 = -176.6150291621406;
double r189883 = 4.0;
double r189884 = r189852 + r189883;
double r189885 = r189882 / r189884;
double r189886 = r189881 + r189885;
double r189887 = 12.507343278686905;
double r189888 = 5.0;
double r189889 = r189852 + r189888;
double r189890 = r189887 / r189889;
double r189891 = r189886 + r189890;
double r189892 = -0.13857109526572012;
double r189893 = 6.0;
double r189894 = r189852 + r189893;
double r189895 = r189892 / r189894;
double r189896 = 9.984369578019572e-06;
double r189897 = r189896 / r189854;
double r189898 = r189895 + r189897;
double r189899 = 1.5056327351493116e-07;
double r189900 = 8.0;
double r189901 = r189852 + r189900;
double r189902 = r189899 / r189901;
double r189903 = r189898 + r189902;
double r189904 = r189891 + r189903;
double r189905 = r189877 + r189904;
double r189906 = r189869 * r189905;
return r189906;
}



Bits error versus z
Results
Initial program 61.7
Simplified1.1
rmApplied associate-+l-1.1
Applied associate-+l-1.1
Applied exp-diff1.6
Applied associate-/r/0.9
Final simplification0.9
herbie shell --seed 2019235
(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.99999999999980993 (/ 676.520368121885099 (+ (- z 1) 1))) (/ -1259.13921672240281 (+ (- z 1) 2))) (/ 771.32342877765313 (+ (- z 1) 3))) (/ -176.615029162140587 (+ (- z 1) 4))) (/ 12.5073432786869052 (+ (- z 1) 5))) (/ -0.138571095265720118 (+ (- z 1) 6))) (/ 9.98436957801957158e-6 (+ (- z 1) 7))) (/ 1.50563273514931162e-7 (+ (- z 1) 8)))))