\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(\sqrt{\pi \cdot 2} \cdot \left(\left(\left(\frac{9.984369578019571583242346146658263705831 \cdot 10^{-6}}{\left(z - 1\right) + 7} + 0.9999999999998099298181841732002794742584\right) + \left(\left(\frac{-1259.139216722402807135949842631816864014}{\left(z - 1\right) + 2} + \frac{676.5203681218850988443591631948947906494}{z}\right) + \left(\frac{771.3234287776531346025876700878143310547}{\left(z - 1\right) + 3} + \frac{-176.6150291621405870046146446838974952698}{\left(z - 1\right) + 4}\right)\right)\right) + \left(\left(\frac{12.50734327868690520801919774385169148445}{\left(z - 1\right) + 5} + \frac{-0.1385710952657201178173096423051902092993}{\left(z - 1\right) + 6}\right) + \frac{1.505632735149311617592788074479481785772 \cdot 10^{-7}}{\left(z - 1\right) + 8}\right)\right)\right) \cdot \left({\left(\sqrt{\left(\left(z - 1\right) + 7\right) + 0.5}\right)}^{\left(\left(z - 1\right) + 0.5\right)} \cdot \frac{{\left(\sqrt{\left(\left(z - 1\right) + 7\right) + 0.5}\right)}^{\left(\left(z - 1\right) + 0.5\right)}}{e^{\left(\left(z - 1\right) + 7\right) + 0.5}}\right)double f(double z) {
double r17502166 = atan2(1.0, 0.0);
double r17502167 = 2.0;
double r17502168 = r17502166 * r17502167;
double r17502169 = sqrt(r17502168);
double r17502170 = z;
double r17502171 = 1.0;
double r17502172 = r17502170 - r17502171;
double r17502173 = 7.0;
double r17502174 = r17502172 + r17502173;
double r17502175 = 0.5;
double r17502176 = r17502174 + r17502175;
double r17502177 = r17502172 + r17502175;
double r17502178 = pow(r17502176, r17502177);
double r17502179 = r17502169 * r17502178;
double r17502180 = -r17502176;
double r17502181 = exp(r17502180);
double r17502182 = r17502179 * r17502181;
double r17502183 = 0.9999999999998099;
double r17502184 = 676.5203681218851;
double r17502185 = r17502172 + r17502171;
double r17502186 = r17502184 / r17502185;
double r17502187 = r17502183 + r17502186;
double r17502188 = -1259.1392167224028;
double r17502189 = r17502172 + r17502167;
double r17502190 = r17502188 / r17502189;
double r17502191 = r17502187 + r17502190;
double r17502192 = 771.3234287776531;
double r17502193 = 3.0;
double r17502194 = r17502172 + r17502193;
double r17502195 = r17502192 / r17502194;
double r17502196 = r17502191 + r17502195;
double r17502197 = -176.6150291621406;
double r17502198 = 4.0;
double r17502199 = r17502172 + r17502198;
double r17502200 = r17502197 / r17502199;
double r17502201 = r17502196 + r17502200;
double r17502202 = 12.507343278686905;
double r17502203 = 5.0;
double r17502204 = r17502172 + r17502203;
double r17502205 = r17502202 / r17502204;
double r17502206 = r17502201 + r17502205;
double r17502207 = -0.13857109526572012;
double r17502208 = 6.0;
double r17502209 = r17502172 + r17502208;
double r17502210 = r17502207 / r17502209;
double r17502211 = r17502206 + r17502210;
double r17502212 = 9.984369578019572e-06;
double r17502213 = r17502212 / r17502174;
double r17502214 = r17502211 + r17502213;
double r17502215 = 1.5056327351493116e-07;
double r17502216 = 8.0;
double r17502217 = r17502172 + r17502216;
double r17502218 = r17502215 / r17502217;
double r17502219 = r17502214 + r17502218;
double r17502220 = r17502182 * r17502219;
return r17502220;
}
double f(double z) {
double r17502221 = atan2(1.0, 0.0);
double r17502222 = 2.0;
double r17502223 = r17502221 * r17502222;
double r17502224 = sqrt(r17502223);
double r17502225 = 9.984369578019572e-06;
double r17502226 = z;
double r17502227 = 1.0;
double r17502228 = r17502226 - r17502227;
double r17502229 = 7.0;
double r17502230 = r17502228 + r17502229;
double r17502231 = r17502225 / r17502230;
double r17502232 = 0.9999999999998099;
double r17502233 = r17502231 + r17502232;
double r17502234 = -1259.1392167224028;
double r17502235 = r17502228 + r17502222;
double r17502236 = r17502234 / r17502235;
double r17502237 = 676.5203681218851;
double r17502238 = r17502237 / r17502226;
double r17502239 = r17502236 + r17502238;
double r17502240 = 771.3234287776531;
double r17502241 = 3.0;
double r17502242 = r17502228 + r17502241;
double r17502243 = r17502240 / r17502242;
double r17502244 = -176.6150291621406;
double r17502245 = 4.0;
double r17502246 = r17502228 + r17502245;
double r17502247 = r17502244 / r17502246;
double r17502248 = r17502243 + r17502247;
double r17502249 = r17502239 + r17502248;
double r17502250 = r17502233 + r17502249;
double r17502251 = 12.507343278686905;
double r17502252 = 5.0;
double r17502253 = r17502228 + r17502252;
double r17502254 = r17502251 / r17502253;
double r17502255 = -0.13857109526572012;
double r17502256 = 6.0;
double r17502257 = r17502228 + r17502256;
double r17502258 = r17502255 / r17502257;
double r17502259 = r17502254 + r17502258;
double r17502260 = 1.5056327351493116e-07;
double r17502261 = 8.0;
double r17502262 = r17502228 + r17502261;
double r17502263 = r17502260 / r17502262;
double r17502264 = r17502259 + r17502263;
double r17502265 = r17502250 + r17502264;
double r17502266 = r17502224 * r17502265;
double r17502267 = 0.5;
double r17502268 = r17502230 + r17502267;
double r17502269 = sqrt(r17502268);
double r17502270 = r17502228 + r17502267;
double r17502271 = pow(r17502269, r17502270);
double r17502272 = exp(r17502268);
double r17502273 = r17502271 / r17502272;
double r17502274 = r17502271 * r17502273;
double r17502275 = r17502266 * r17502274;
return r17502275;
}



Bits error versus z
Results
Initial program 61.6
Simplified1.1
rmApplied *-un-lft-identity1.1
Applied times-frac1.0
Simplified1.0
rmApplied *-un-lft-identity1.0
Applied add-sqr-sqrt1.0
Applied unpow-prod-down1.0
Applied times-frac1.0
Simplified1.0
Final simplification1.0
herbie shell --seed 2019174
(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)))))