\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(338.2601840609425494221795815974473953247 \cdot \left({\left(\frac{1}{{6.5}^{1}}\right)}^{0.5} \cdot \left(\frac{{\left(\log 6.5\right)}^{2} \cdot \left(z \cdot \sqrt{2}\right)}{e^{6.5}} \cdot \sqrt{\pi}\right)\right) + \left(2581.191799681222164508653804659843444824 \cdot \left(\frac{\sqrt{2} \cdot z}{e^{6.5}} \cdot \left({\left(\frac{1}{{6.5}^{1}}\right)}^{0.5} \cdot \sqrt{\pi}\right)\right) + \left(676.5203681218850988443591631948947906494 \cdot \left(\frac{\sqrt{2}}{z \cdot e^{6.5}} \cdot e^{\log \left(\sqrt{\pi}\right) - \left(\log 6.5 \cdot 1\right) \cdot 0.5}\right) + \left(676.5203681218850988443591631948947906494 \cdot \left(\sqrt{\pi} \cdot \left(\frac{\log 6.5 \cdot \sqrt{2}}{e^{6.5}} \cdot {\left(\frac{1}{{6.5}^{1}}\right)}^{0.5}\right)\right) + 169.1300920304712747110897907987236976624 \cdot \left(\frac{\sqrt{2} \cdot z}{e^{6.5}} \cdot \left({\left(\frac{1}{{6.5}^{5}}\right)}^{0.5} \cdot \sqrt{\pi}\right)\right)\right)\right)\right)\right) - 1656.810451873720467119710519909858703613 \cdot \left({\left(\frac{1}{{6.5}^{1}}\right)}^{0.5} \cdot \left(\frac{\log 6.5 \cdot \left(z \cdot \sqrt{2}\right)}{e^{6.5}} \cdot \sqrt{\pi}\right) + \sqrt{\pi} \cdot \left(\frac{\sqrt{2}}{e^{6.5}} \cdot {\left(\frac{1}{{6.5}^{1}}\right)}^{0.5}\right)\right)double f(double z) {
double r120908 = atan2(1.0, 0.0);
double r120909 = 2.0;
double r120910 = r120908 * r120909;
double r120911 = sqrt(r120910);
double r120912 = z;
double r120913 = 1.0;
double r120914 = r120912 - r120913;
double r120915 = 7.0;
double r120916 = r120914 + r120915;
double r120917 = 0.5;
double r120918 = r120916 + r120917;
double r120919 = r120914 + r120917;
double r120920 = pow(r120918, r120919);
double r120921 = r120911 * r120920;
double r120922 = -r120918;
double r120923 = exp(r120922);
double r120924 = r120921 * r120923;
double r120925 = 0.9999999999998099;
double r120926 = 676.5203681218851;
double r120927 = r120914 + r120913;
double r120928 = r120926 / r120927;
double r120929 = r120925 + r120928;
double r120930 = -1259.1392167224028;
double r120931 = r120914 + r120909;
double r120932 = r120930 / r120931;
double r120933 = r120929 + r120932;
double r120934 = 771.3234287776531;
double r120935 = 3.0;
double r120936 = r120914 + r120935;
double r120937 = r120934 / r120936;
double r120938 = r120933 + r120937;
double r120939 = -176.6150291621406;
double r120940 = 4.0;
double r120941 = r120914 + r120940;
double r120942 = r120939 / r120941;
double r120943 = r120938 + r120942;
double r120944 = 12.507343278686905;
double r120945 = 5.0;
double r120946 = r120914 + r120945;
double r120947 = r120944 / r120946;
double r120948 = r120943 + r120947;
double r120949 = -0.13857109526572012;
double r120950 = 6.0;
double r120951 = r120914 + r120950;
double r120952 = r120949 / r120951;
double r120953 = r120948 + r120952;
double r120954 = 9.984369578019572e-06;
double r120955 = r120954 / r120916;
double r120956 = r120953 + r120955;
double r120957 = 1.5056327351493116e-07;
double r120958 = 8.0;
double r120959 = r120914 + r120958;
double r120960 = r120957 / r120959;
double r120961 = r120956 + r120960;
double r120962 = r120924 * r120961;
return r120962;
}
double f(double z) {
double r120963 = 338.26018406094255;
double r120964 = 1.0;
double r120965 = 6.5;
double r120966 = 1.0;
double r120967 = pow(r120965, r120966);
double r120968 = r120964 / r120967;
double r120969 = 0.5;
double r120970 = pow(r120968, r120969);
double r120971 = log(r120965);
double r120972 = 2.0;
double r120973 = pow(r120971, r120972);
double r120974 = z;
double r120975 = 2.0;
double r120976 = sqrt(r120975);
double r120977 = r120974 * r120976;
double r120978 = r120973 * r120977;
double r120979 = exp(r120965);
double r120980 = r120978 / r120979;
double r120981 = atan2(1.0, 0.0);
double r120982 = sqrt(r120981);
double r120983 = r120980 * r120982;
double r120984 = r120970 * r120983;
double r120985 = r120963 * r120984;
double r120986 = 2581.191799681222;
double r120987 = r120976 * r120974;
double r120988 = r120987 / r120979;
double r120989 = r120970 * r120982;
double r120990 = r120988 * r120989;
double r120991 = r120986 * r120990;
double r120992 = 676.5203681218851;
double r120993 = r120974 * r120979;
double r120994 = r120976 / r120993;
double r120995 = log(r120982);
double r120996 = r120971 * r120966;
double r120997 = r120996 * r120969;
double r120998 = r120995 - r120997;
double r120999 = exp(r120998);
double r121000 = r120994 * r120999;
double r121001 = r120992 * r121000;
double r121002 = r120971 * r120976;
double r121003 = r121002 / r120979;
double r121004 = r121003 * r120970;
double r121005 = r120982 * r121004;
double r121006 = r120992 * r121005;
double r121007 = 169.13009203047127;
double r121008 = 5.0;
double r121009 = pow(r120965, r121008);
double r121010 = r120964 / r121009;
double r121011 = pow(r121010, r120969);
double r121012 = r121011 * r120982;
double r121013 = r120988 * r121012;
double r121014 = r121007 * r121013;
double r121015 = r121006 + r121014;
double r121016 = r121001 + r121015;
double r121017 = r120991 + r121016;
double r121018 = r120985 + r121017;
double r121019 = 1656.8104518737205;
double r121020 = r120971 * r120977;
double r121021 = r121020 / r120979;
double r121022 = r121021 * r120982;
double r121023 = r120970 * r121022;
double r121024 = r120976 / r120979;
double r121025 = r121024 * r120970;
double r121026 = r120982 * r121025;
double r121027 = r121023 + r121026;
double r121028 = r121019 * r121027;
double r121029 = r121018 - r121028;
return r121029;
}



Bits error versus z
Results
Initial program 61.6
Simplified1.2
Taylor expanded around 0 1.5
Simplified1.5
rmApplied add-exp-log1.5
Applied add-exp-log1.5
Applied pow-exp1.5
Applied rec-exp1.5
Applied pow-exp1.5
Applied prod-exp1.1
Simplified1.1
Final simplification1.1
herbie shell --seed 2019325
(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)))))