\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({\left(\frac{1}{{6.5}^{1}}\right)}^{0.5} \cdot \left(\sqrt{\pi} \cdot \left(\frac{\sqrt{2}}{e^{6.5}} + \frac{z \cdot \sqrt{2}}{\frac{e^{6.5}}{\log 6.5}}\right)\right), -1656.810451873720467119710519909858703613, \mathsf{fma}\left(338.2601840609425494221795815974473953247 \cdot {\left(\frac{1}{{6.5}^{1}}\right)}^{0.5}, \frac{\sqrt{\pi} \cdot {\left(\log 6.5\right)}^{2}}{\frac{e^{6.5}}{z \cdot \sqrt{2}}}, e^{\mathsf{fma}\left(0.5, -\log \left({6.5}^{1}\right), \log \left(\sqrt{\pi}\right)\right)} \cdot \left(2581.191799681222164508653804659843444824 \cdot \frac{\sqrt{2} \cdot z}{e^{6.5}} + 676.5203681218850988443591631948947906494 \cdot \frac{\sqrt{2}}{z \cdot e^{6.5}}\right) + \sqrt{\pi} \cdot \left(676.5203681218850988443591631948947906494 \cdot \left(\frac{\log 6.5 \cdot \sqrt{2}}{e^{6.5}} \cdot {\left(\frac{1}{{6.5}^{1}}\right)}^{0.5}\right) + \left(169.1300920304712747110897907987236976624 \cdot \frac{\sqrt{2} \cdot z}{e^{6.5}}\right) \cdot {\left(\frac{1}{{6.5}^{5}}\right)}^{0.5}\right)\right)\right)double f(double z) {
double r169053 = atan2(1.0, 0.0);
double r169054 = 2.0;
double r169055 = r169053 * r169054;
double r169056 = sqrt(r169055);
double r169057 = z;
double r169058 = 1.0;
double r169059 = r169057 - r169058;
double r169060 = 7.0;
double r169061 = r169059 + r169060;
double r169062 = 0.5;
double r169063 = r169061 + r169062;
double r169064 = r169059 + r169062;
double r169065 = pow(r169063, r169064);
double r169066 = r169056 * r169065;
double r169067 = -r169063;
double r169068 = exp(r169067);
double r169069 = r169066 * r169068;
double r169070 = 0.9999999999998099;
double r169071 = 676.5203681218851;
double r169072 = r169059 + r169058;
double r169073 = r169071 / r169072;
double r169074 = r169070 + r169073;
double r169075 = -1259.1392167224028;
double r169076 = r169059 + r169054;
double r169077 = r169075 / r169076;
double r169078 = r169074 + r169077;
double r169079 = 771.3234287776531;
double r169080 = 3.0;
double r169081 = r169059 + r169080;
double r169082 = r169079 / r169081;
double r169083 = r169078 + r169082;
double r169084 = -176.6150291621406;
double r169085 = 4.0;
double r169086 = r169059 + r169085;
double r169087 = r169084 / r169086;
double r169088 = r169083 + r169087;
double r169089 = 12.507343278686905;
double r169090 = 5.0;
double r169091 = r169059 + r169090;
double r169092 = r169089 / r169091;
double r169093 = r169088 + r169092;
double r169094 = -0.13857109526572012;
double r169095 = 6.0;
double r169096 = r169059 + r169095;
double r169097 = r169094 / r169096;
double r169098 = r169093 + r169097;
double r169099 = 9.984369578019572e-06;
double r169100 = r169099 / r169061;
double r169101 = r169098 + r169100;
double r169102 = 1.5056327351493116e-07;
double r169103 = 8.0;
double r169104 = r169059 + r169103;
double r169105 = r169102 / r169104;
double r169106 = r169101 + r169105;
double r169107 = r169069 * r169106;
return r169107;
}
double f(double z) {
double r169108 = 1.0;
double r169109 = 6.5;
double r169110 = 1.0;
double r169111 = pow(r169109, r169110);
double r169112 = r169108 / r169111;
double r169113 = 0.5;
double r169114 = pow(r169112, r169113);
double r169115 = atan2(1.0, 0.0);
double r169116 = sqrt(r169115);
double r169117 = 2.0;
double r169118 = sqrt(r169117);
double r169119 = exp(r169109);
double r169120 = r169118 / r169119;
double r169121 = z;
double r169122 = r169121 * r169118;
double r169123 = log(r169109);
double r169124 = r169119 / r169123;
double r169125 = r169122 / r169124;
double r169126 = r169120 + r169125;
double r169127 = r169116 * r169126;
double r169128 = r169114 * r169127;
double r169129 = 1656.8104518737205;
double r169130 = -r169129;
double r169131 = 338.26018406094255;
double r169132 = r169131 * r169114;
double r169133 = 2.0;
double r169134 = pow(r169123, r169133);
double r169135 = r169116 * r169134;
double r169136 = r169119 / r169122;
double r169137 = r169135 / r169136;
double r169138 = log(r169111);
double r169139 = -r169138;
double r169140 = log(r169116);
double r169141 = fma(r169113, r169139, r169140);
double r169142 = exp(r169141);
double r169143 = 2581.191799681222;
double r169144 = r169118 * r169121;
double r169145 = r169144 / r169119;
double r169146 = r169143 * r169145;
double r169147 = 676.5203681218851;
double r169148 = r169121 * r169119;
double r169149 = r169118 / r169148;
double r169150 = r169147 * r169149;
double r169151 = r169146 + r169150;
double r169152 = r169142 * r169151;
double r169153 = r169123 * r169118;
double r169154 = r169153 / r169119;
double r169155 = r169154 * r169114;
double r169156 = r169147 * r169155;
double r169157 = 169.13009203047127;
double r169158 = r169157 * r169145;
double r169159 = 5.0;
double r169160 = pow(r169109, r169159);
double r169161 = r169108 / r169160;
double r169162 = pow(r169161, r169113);
double r169163 = r169158 * r169162;
double r169164 = r169156 + r169163;
double r169165 = r169116 * r169164;
double r169166 = r169152 + r169165;
double r169167 = fma(r169132, r169137, r169166);
double r169168 = fma(r169128, r169130, r169167);
return r169168;
}



Bits error versus z
Initial program 61.8
Simplified1.3
Taylor expanded around 0 1.5
Simplified1.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 2019208 +o rules:numerics
(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)))))