\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 r327810 = atan2(1.0, 0.0);
double r327811 = 2.0;
double r327812 = r327810 * r327811;
double r327813 = sqrt(r327812);
double r327814 = z;
double r327815 = 1.0;
double r327816 = r327814 - r327815;
double r327817 = 7.0;
double r327818 = r327816 + r327817;
double r327819 = 0.5;
double r327820 = r327818 + r327819;
double r327821 = r327816 + r327819;
double r327822 = pow(r327820, r327821);
double r327823 = r327813 * r327822;
double r327824 = -r327820;
double r327825 = exp(r327824);
double r327826 = r327823 * r327825;
double r327827 = 0.9999999999998099;
double r327828 = 676.5203681218851;
double r327829 = r327816 + r327815;
double r327830 = r327828 / r327829;
double r327831 = r327827 + r327830;
double r327832 = -1259.1392167224028;
double r327833 = r327816 + r327811;
double r327834 = r327832 / r327833;
double r327835 = r327831 + r327834;
double r327836 = 771.3234287776531;
double r327837 = 3.0;
double r327838 = r327816 + r327837;
double r327839 = r327836 / r327838;
double r327840 = r327835 + r327839;
double r327841 = -176.6150291621406;
double r327842 = 4.0;
double r327843 = r327816 + r327842;
double r327844 = r327841 / r327843;
double r327845 = r327840 + r327844;
double r327846 = 12.507343278686905;
double r327847 = 5.0;
double r327848 = r327816 + r327847;
double r327849 = r327846 / r327848;
double r327850 = r327845 + r327849;
double r327851 = -0.13857109526572012;
double r327852 = 6.0;
double r327853 = r327816 + r327852;
double r327854 = r327851 / r327853;
double r327855 = r327850 + r327854;
double r327856 = 9.984369578019572e-06;
double r327857 = r327856 / r327818;
double r327858 = r327855 + r327857;
double r327859 = 1.5056327351493116e-07;
double r327860 = 8.0;
double r327861 = r327816 + r327860;
double r327862 = r327859 / r327861;
double r327863 = r327858 + r327862;
double r327864 = r327826 * r327863;
return r327864;
}
double f(double z) {
double r327865 = z;
double r327866 = 1.0;
double r327867 = r327865 - r327866;
double r327868 = 7.0;
double r327869 = r327867 + r327868;
double r327870 = 0.5;
double r327871 = r327869 + r327870;
double r327872 = r327867 + r327870;
double r327873 = pow(r327871, r327872);
double r327874 = -r327867;
double r327875 = exp(r327874);
double r327876 = exp(r327868);
double r327877 = r327875 / r327876;
double r327878 = r327873 * r327877;
double r327879 = atan2(1.0, 0.0);
double r327880 = 2.0;
double r327881 = r327879 * r327880;
double r327882 = sqrt(r327881);
double r327883 = exp(r327870);
double r327884 = r327882 / r327883;
double r327885 = -176.6150291621406;
double r327886 = 4.0;
double r327887 = r327867 + r327886;
double r327888 = r327885 / r327887;
double r327889 = 676.5203681218851;
double r327890 = r327889 / r327865;
double r327891 = 0.9999999999998099;
double r327892 = r327890 + r327891;
double r327893 = -1259.1392167224028;
double r327894 = r327867 + r327880;
double r327895 = r327893 / r327894;
double r327896 = r327892 + r327895;
double r327897 = r327888 + r327896;
double r327898 = 771.3234287776531;
double r327899 = 3.0;
double r327900 = r327867 + r327899;
double r327901 = r327898 / r327900;
double r327902 = 12.507343278686905;
double r327903 = 5.0;
double r327904 = r327867 + r327903;
double r327905 = r327902 / r327904;
double r327906 = -0.13857109526572012;
double r327907 = 6.0;
double r327908 = r327867 + r327907;
double r327909 = r327906 / r327908;
double r327910 = r327905 + r327909;
double r327911 = 9.984369578019572e-06;
double r327912 = r327911 / r327869;
double r327913 = 1.5056327351493116e-07;
double r327914 = 8.0;
double r327915 = r327867 + r327914;
double r327916 = r327913 / r327915;
double r327917 = r327912 + r327916;
double r327918 = r327910 + r327917;
double r327919 = r327901 + r327918;
double r327920 = r327897 + r327919;
double r327921 = r327884 * r327920;
double r327922 = r327878 * r327921;
return r327922;
}



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