\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)\mathsf{fma}\left(\frac{\sqrt{\pi} \cdot \left({\left(\frac{1}{{6.5}^{1}}\right)}^{0.5} \cdot \sqrt{2}\right)}{z \cdot e^{6.5}}, 676.5203681218850988443591631948947906494, \mathsf{fma}\left(\frac{\sqrt{2}}{\frac{e^{6.5}}{\log 6.5}} \cdot 676.5203681218850988443591631948947906494, \sqrt{\pi} \cdot {\left(\frac{1}{{6.5}^{1}}\right)}^{0.5}, \mathsf{fma}\left(169.1300920304712747110897907987236976624, \left({\left(\frac{1}{{6.5}^{5}}\right)}^{0.5} \cdot \sqrt{\pi}\right) \cdot \frac{z \cdot \sqrt{2}}{e^{6.5}}, \mathsf{fma}\left(338.2601840609425494221795815974473953247 \cdot \frac{{\left(\log 6.5\right)}^{2} \cdot \left(z \cdot \sqrt{2}\right)}{e^{6.5}}, \sqrt{\pi} \cdot {\left(\frac{1}{{6.5}^{1}}\right)}^{0.5}, 2581.191799681222164508653804659843444824 \cdot \left(\left(\sqrt{\pi} \cdot {\left(\frac{1}{{6.5}^{1}}\right)}^{0.5}\right) \cdot \frac{z \cdot \sqrt{2}}{e^{6.5}}\right)\right)\right)\right)\right) - \left(\left(\sqrt{\pi} \cdot {\left(\frac{1}{{6.5}^{1}}\right)}^{0.5}\right) \cdot \frac{\sqrt{2}}{e^{6.5}} + \frac{\sqrt{2}}{\frac{e^{6.5}}{z \cdot \log 6.5}} \cdot \left(\sqrt{\pi} \cdot {\left(\frac{1}{{6.5}^{1}}\right)}^{0.5}\right)\right) \cdot 1656.810451873720467119710519909858703613double f(double z) {
double r190031 = atan2(1.0, 0.0);
double r190032 = 2.0;
double r190033 = r190031 * r190032;
double r190034 = sqrt(r190033);
double r190035 = z;
double r190036 = 1.0;
double r190037 = r190035 - r190036;
double r190038 = 7.0;
double r190039 = r190037 + r190038;
double r190040 = 0.5;
double r190041 = r190039 + r190040;
double r190042 = r190037 + r190040;
double r190043 = pow(r190041, r190042);
double r190044 = r190034 * r190043;
double r190045 = -r190041;
double r190046 = exp(r190045);
double r190047 = r190044 * r190046;
double r190048 = 0.9999999999998099;
double r190049 = 676.5203681218851;
double r190050 = r190037 + r190036;
double r190051 = r190049 / r190050;
double r190052 = r190048 + r190051;
double r190053 = -1259.1392167224028;
double r190054 = r190037 + r190032;
double r190055 = r190053 / r190054;
double r190056 = r190052 + r190055;
double r190057 = 771.3234287776531;
double r190058 = 3.0;
double r190059 = r190037 + r190058;
double r190060 = r190057 / r190059;
double r190061 = r190056 + r190060;
double r190062 = -176.6150291621406;
double r190063 = 4.0;
double r190064 = r190037 + r190063;
double r190065 = r190062 / r190064;
double r190066 = r190061 + r190065;
double r190067 = 12.507343278686905;
double r190068 = 5.0;
double r190069 = r190037 + r190068;
double r190070 = r190067 / r190069;
double r190071 = r190066 + r190070;
double r190072 = -0.13857109526572012;
double r190073 = 6.0;
double r190074 = r190037 + r190073;
double r190075 = r190072 / r190074;
double r190076 = r190071 + r190075;
double r190077 = 9.984369578019572e-06;
double r190078 = r190077 / r190039;
double r190079 = r190076 + r190078;
double r190080 = 1.5056327351493116e-07;
double r190081 = 8.0;
double r190082 = r190037 + r190081;
double r190083 = r190080 / r190082;
double r190084 = r190079 + r190083;
double r190085 = r190047 * r190084;
return r190085;
}
double f(double z) {
double r190086 = atan2(1.0, 0.0);
double r190087 = sqrt(r190086);
double r190088 = 1.0;
double r190089 = 6.5;
double r190090 = 1.0;
double r190091 = pow(r190089, r190090);
double r190092 = r190088 / r190091;
double r190093 = 0.5;
double r190094 = pow(r190092, r190093);
double r190095 = 2.0;
double r190096 = sqrt(r190095);
double r190097 = r190094 * r190096;
double r190098 = r190087 * r190097;
double r190099 = z;
double r190100 = exp(r190089);
double r190101 = r190099 * r190100;
double r190102 = r190098 / r190101;
double r190103 = 676.5203681218851;
double r190104 = log(r190089);
double r190105 = r190100 / r190104;
double r190106 = r190096 / r190105;
double r190107 = r190106 * r190103;
double r190108 = r190087 * r190094;
double r190109 = 169.13009203047127;
double r190110 = 5.0;
double r190111 = pow(r190089, r190110);
double r190112 = r190088 / r190111;
double r190113 = pow(r190112, r190093);
double r190114 = r190113 * r190087;
double r190115 = r190099 * r190096;
double r190116 = r190115 / r190100;
double r190117 = r190114 * r190116;
double r190118 = 338.26018406094255;
double r190119 = 2.0;
double r190120 = pow(r190104, r190119);
double r190121 = r190120 * r190115;
double r190122 = r190121 / r190100;
double r190123 = r190118 * r190122;
double r190124 = 2581.191799681222;
double r190125 = r190108 * r190116;
double r190126 = r190124 * r190125;
double r190127 = fma(r190123, r190108, r190126);
double r190128 = fma(r190109, r190117, r190127);
double r190129 = fma(r190107, r190108, r190128);
double r190130 = fma(r190102, r190103, r190129);
double r190131 = r190096 / r190100;
double r190132 = r190108 * r190131;
double r190133 = r190099 * r190104;
double r190134 = r190100 / r190133;
double r190135 = r190096 / r190134;
double r190136 = r190135 * r190108;
double r190137 = r190132 + r190136;
double r190138 = 1656.8104518737205;
double r190139 = r190137 * r190138;
double r190140 = r190130 - r190139;
return r190140;
}



Bits error versus z
Initial program 61.6
Simplified0.9
Taylor expanded around 0 1.5
Simplified1.6
rmApplied associate-*r*1.1
Simplified1.1
Final simplification1.1
herbie shell --seed 2019179 +o rules:numerics
(FPCore (z)
:name "Jmat.Real.gamma, branch z greater than 0.5"
(* (* (* (sqrt (* PI 2.0)) (pow (+ (+ (- z 1.0) 7.0) 0.5) (+ (- z 1.0) 0.5))) (exp (- (+ (+ (- z 1.0) 7.0) 0.5)))) (+ (+ (+ (+ (+ (+ (+ (+ 0.9999999999998099 (/ 676.5203681218851 (+ (- z 1.0) 1.0))) (/ -1259.1392167224028 (+ (- z 1.0) 2.0))) (/ 771.3234287776531 (+ (- z 1.0) 3.0))) (/ -176.6150291621406 (+ (- z 1.0) 4.0))) (/ 12.507343278686905 (+ (- z 1.0) 5.0))) (/ -0.13857109526572012 (+ (- z 1.0) 6.0))) (/ 9.984369578019572e-06 (+ (- z 1.0) 7.0))) (/ 1.5056327351493116e-07 (+ (- z 1.0) 8.0)))))