\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)\left(\frac{1.5056327351493116 \cdot 10^{-07}}{z + 7} + \frac{9.984369578019572 \cdot 10^{-06}}{7 + \left(z - 1\right)}\right) \cdot \left(\left({\left(\left(7 + \left(z - 1\right)\right) + 0.5\right)}^{\left(0.5 + \left(z - 1\right)\right)} \cdot \sqrt{\pi \cdot 2}\right) \cdot e^{-\left(\left(7 + \left(z - 1\right)\right) + 0.5\right)}\right) + \left(e^{-\left(\left(7 + \left(z - 1\right)\right) + 0.5\right)} \cdot \left(\frac{\sqrt{2}}{e^{\log \left(6.5 + z\right) \cdot \left(0.5 - z\right)}} \cdot \sqrt{\pi}\right)\right) \cdot \left(\frac{12.507343278686905}{z + 4} + \left(\frac{-0.13857109526572012}{z - -5} + \left(\left(\left(\frac{676.5203681218851}{z} + \left(0.9999999999998099 + \frac{-1259.1392167224028}{z - -1}\right)\right) + \frac{771.3234287776531}{z + 2}\right) + \frac{-176.6150291621406}{3 + z}\right)\right)\right)double f(double z) {
double r27461820 = atan2(1.0, 0.0);
double r27461821 = 2.0;
double r27461822 = r27461820 * r27461821;
double r27461823 = sqrt(r27461822);
double r27461824 = z;
double r27461825 = 1.0;
double r27461826 = r27461824 - r27461825;
double r27461827 = 7.0;
double r27461828 = r27461826 + r27461827;
double r27461829 = 0.5;
double r27461830 = r27461828 + r27461829;
double r27461831 = r27461826 + r27461829;
double r27461832 = pow(r27461830, r27461831);
double r27461833 = r27461823 * r27461832;
double r27461834 = -r27461830;
double r27461835 = exp(r27461834);
double r27461836 = r27461833 * r27461835;
double r27461837 = 0.9999999999998099;
double r27461838 = 676.5203681218851;
double r27461839 = r27461826 + r27461825;
double r27461840 = r27461838 / r27461839;
double r27461841 = r27461837 + r27461840;
double r27461842 = -1259.1392167224028;
double r27461843 = r27461826 + r27461821;
double r27461844 = r27461842 / r27461843;
double r27461845 = r27461841 + r27461844;
double r27461846 = 771.3234287776531;
double r27461847 = 3.0;
double r27461848 = r27461826 + r27461847;
double r27461849 = r27461846 / r27461848;
double r27461850 = r27461845 + r27461849;
double r27461851 = -176.6150291621406;
double r27461852 = 4.0;
double r27461853 = r27461826 + r27461852;
double r27461854 = r27461851 / r27461853;
double r27461855 = r27461850 + r27461854;
double r27461856 = 12.507343278686905;
double r27461857 = 5.0;
double r27461858 = r27461826 + r27461857;
double r27461859 = r27461856 / r27461858;
double r27461860 = r27461855 + r27461859;
double r27461861 = -0.13857109526572012;
double r27461862 = 6.0;
double r27461863 = r27461826 + r27461862;
double r27461864 = r27461861 / r27461863;
double r27461865 = r27461860 + r27461864;
double r27461866 = 9.984369578019572e-06;
double r27461867 = r27461866 / r27461828;
double r27461868 = r27461865 + r27461867;
double r27461869 = 1.5056327351493116e-07;
double r27461870 = 8.0;
double r27461871 = r27461826 + r27461870;
double r27461872 = r27461869 / r27461871;
double r27461873 = r27461868 + r27461872;
double r27461874 = r27461836 * r27461873;
return r27461874;
}
double f(double z) {
double r27461875 = 1.5056327351493116e-07;
double r27461876 = z;
double r27461877 = 7.0;
double r27461878 = r27461876 + r27461877;
double r27461879 = r27461875 / r27461878;
double r27461880 = 9.984369578019572e-06;
double r27461881 = 1.0;
double r27461882 = r27461876 - r27461881;
double r27461883 = r27461877 + r27461882;
double r27461884 = r27461880 / r27461883;
double r27461885 = r27461879 + r27461884;
double r27461886 = 0.5;
double r27461887 = r27461883 + r27461886;
double r27461888 = r27461886 + r27461882;
double r27461889 = pow(r27461887, r27461888);
double r27461890 = atan2(1.0, 0.0);
double r27461891 = 2.0;
double r27461892 = r27461890 * r27461891;
double r27461893 = sqrt(r27461892);
double r27461894 = r27461889 * r27461893;
double r27461895 = -r27461887;
double r27461896 = exp(r27461895);
double r27461897 = r27461894 * r27461896;
double r27461898 = r27461885 * r27461897;
double r27461899 = sqrt(r27461891);
double r27461900 = 6.5;
double r27461901 = r27461900 + r27461876;
double r27461902 = log(r27461901);
double r27461903 = r27461886 - r27461876;
double r27461904 = r27461902 * r27461903;
double r27461905 = exp(r27461904);
double r27461906 = r27461899 / r27461905;
double r27461907 = sqrt(r27461890);
double r27461908 = r27461906 * r27461907;
double r27461909 = r27461896 * r27461908;
double r27461910 = 12.507343278686905;
double r27461911 = 4.0;
double r27461912 = r27461876 + r27461911;
double r27461913 = r27461910 / r27461912;
double r27461914 = -0.13857109526572012;
double r27461915 = -5.0;
double r27461916 = r27461876 - r27461915;
double r27461917 = r27461914 / r27461916;
double r27461918 = 676.5203681218851;
double r27461919 = r27461918 / r27461876;
double r27461920 = 0.9999999999998099;
double r27461921 = -1259.1392167224028;
double r27461922 = -1.0;
double r27461923 = r27461876 - r27461922;
double r27461924 = r27461921 / r27461923;
double r27461925 = r27461920 + r27461924;
double r27461926 = r27461919 + r27461925;
double r27461927 = 771.3234287776531;
double r27461928 = r27461876 + r27461891;
double r27461929 = r27461927 / r27461928;
double r27461930 = r27461926 + r27461929;
double r27461931 = -176.6150291621406;
double r27461932 = 3.0;
double r27461933 = r27461932 + r27461876;
double r27461934 = r27461931 / r27461933;
double r27461935 = r27461930 + r27461934;
double r27461936 = r27461917 + r27461935;
double r27461937 = r27461913 + r27461936;
double r27461938 = r27461909 * r27461937;
double r27461939 = r27461898 + r27461938;
return r27461939;
}



Bits error versus z
Results
Initial program 59.7
Simplified0.7
Taylor expanded around -inf 0.8
Simplified0.8
Final simplification0.8
herbie shell --seed 2019107 +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)))))