\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(\frac{{\left(\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}} \cdot \left(\left(\left(\frac{9.984369578019571583242346146658263705831 \cdot 10^{-6}}{\left(z - 1\right) + 7} + \frac{-0.1385710952657201178173096423051902092993}{\left(z - 1\right) + 6}\right) + \left(\left(\left(\frac{-1259.139216722402807135949842631816864014}{2 + \left(z - 1\right)} + \left(0.9999999999998099298181841732002794742584 + \frac{676.5203681218850988443591631948947906494}{z}\right)\right) + \frac{771.3234287776531346025876700878143310547}{\left(z - 1\right) + 3}\right) + \left(\frac{-176.6150291621405870046146446838974952698}{\left(z - 1\right) + 4} + \frac{12.50734327868690520801919774385169148445}{\left(z - 1\right) + 5}\right)\right)\right) + \frac{1.505632735149311617592788074479481785772 \cdot 10^{-7}}{\left(z - 1\right) + 8}\right)\right) \cdot \sqrt{\pi \cdot 2}double f(double z) {
double r11729248 = atan2(1.0, 0.0);
double r11729249 = 2.0;
double r11729250 = r11729248 * r11729249;
double r11729251 = sqrt(r11729250);
double r11729252 = z;
double r11729253 = 1.0;
double r11729254 = r11729252 - r11729253;
double r11729255 = 7.0;
double r11729256 = r11729254 + r11729255;
double r11729257 = 0.5;
double r11729258 = r11729256 + r11729257;
double r11729259 = r11729254 + r11729257;
double r11729260 = pow(r11729258, r11729259);
double r11729261 = r11729251 * r11729260;
double r11729262 = -r11729258;
double r11729263 = exp(r11729262);
double r11729264 = r11729261 * r11729263;
double r11729265 = 0.9999999999998099;
double r11729266 = 676.5203681218851;
double r11729267 = r11729254 + r11729253;
double r11729268 = r11729266 / r11729267;
double r11729269 = r11729265 + r11729268;
double r11729270 = -1259.1392167224028;
double r11729271 = r11729254 + r11729249;
double r11729272 = r11729270 / r11729271;
double r11729273 = r11729269 + r11729272;
double r11729274 = 771.3234287776531;
double r11729275 = 3.0;
double r11729276 = r11729254 + r11729275;
double r11729277 = r11729274 / r11729276;
double r11729278 = r11729273 + r11729277;
double r11729279 = -176.6150291621406;
double r11729280 = 4.0;
double r11729281 = r11729254 + r11729280;
double r11729282 = r11729279 / r11729281;
double r11729283 = r11729278 + r11729282;
double r11729284 = 12.507343278686905;
double r11729285 = 5.0;
double r11729286 = r11729254 + r11729285;
double r11729287 = r11729284 / r11729286;
double r11729288 = r11729283 + r11729287;
double r11729289 = -0.13857109526572012;
double r11729290 = 6.0;
double r11729291 = r11729254 + r11729290;
double r11729292 = r11729289 / r11729291;
double r11729293 = r11729288 + r11729292;
double r11729294 = 9.984369578019572e-06;
double r11729295 = r11729294 / r11729256;
double r11729296 = r11729293 + r11729295;
double r11729297 = 1.5056327351493116e-07;
double r11729298 = 8.0;
double r11729299 = r11729254 + r11729298;
double r11729300 = r11729297 / r11729299;
double r11729301 = r11729296 + r11729300;
double r11729302 = r11729264 * r11729301;
return r11729302;
}
double f(double z) {
double r11729303 = z;
double r11729304 = 1.0;
double r11729305 = r11729303 - r11729304;
double r11729306 = 7.0;
double r11729307 = r11729305 + r11729306;
double r11729308 = 0.5;
double r11729309 = r11729307 + r11729308;
double r11729310 = r11729305 + r11729308;
double r11729311 = pow(r11729309, r11729310);
double r11729312 = exp(r11729309);
double r11729313 = r11729311 / r11729312;
double r11729314 = 9.984369578019572e-06;
double r11729315 = r11729314 / r11729307;
double r11729316 = -0.13857109526572012;
double r11729317 = 6.0;
double r11729318 = r11729305 + r11729317;
double r11729319 = r11729316 / r11729318;
double r11729320 = r11729315 + r11729319;
double r11729321 = -1259.1392167224028;
double r11729322 = 2.0;
double r11729323 = r11729322 + r11729305;
double r11729324 = r11729321 / r11729323;
double r11729325 = 0.9999999999998099;
double r11729326 = 676.5203681218851;
double r11729327 = r11729326 / r11729303;
double r11729328 = r11729325 + r11729327;
double r11729329 = r11729324 + r11729328;
double r11729330 = 771.3234287776531;
double r11729331 = 3.0;
double r11729332 = r11729305 + r11729331;
double r11729333 = r11729330 / r11729332;
double r11729334 = r11729329 + r11729333;
double r11729335 = -176.6150291621406;
double r11729336 = 4.0;
double r11729337 = r11729305 + r11729336;
double r11729338 = r11729335 / r11729337;
double r11729339 = 12.507343278686905;
double r11729340 = 5.0;
double r11729341 = r11729305 + r11729340;
double r11729342 = r11729339 / r11729341;
double r11729343 = r11729338 + r11729342;
double r11729344 = r11729334 + r11729343;
double r11729345 = r11729320 + r11729344;
double r11729346 = 1.5056327351493116e-07;
double r11729347 = 8.0;
double r11729348 = r11729305 + r11729347;
double r11729349 = r11729346 / r11729348;
double r11729350 = r11729345 + r11729349;
double r11729351 = r11729313 * r11729350;
double r11729352 = atan2(1.0, 0.0);
double r11729353 = r11729352 * r11729322;
double r11729354 = sqrt(r11729353);
double r11729355 = r11729351 * r11729354;
return r11729355;
}



Bits error versus z
Results
Initial program 61.6
Simplified1.0
rmApplied associate-*r*1.0
Final simplification1.0
herbie shell --seed 2019170 +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)))))