\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.99999999999980993 + \frac{676.520368121885099}{\left(z - 1\right) + 1}\right) + \frac{-1259.13921672240281}{\left(z - 1\right) + 2}\right) + \frac{771.32342877765313}{\left(z - 1\right) + 3}\right) + \frac{-176.615029162140587}{\left(z - 1\right) + 4}\right) + \frac{12.5073432786869052}{\left(z - 1\right) + 5}\right) + \frac{-0.138571095265720118}{\left(z - 1\right) + 6}\right) + \frac{9.98436957801957158 \cdot 10^{-6}}{\left(z - 1\right) + 7}\right) + \frac{1.50563273514931162 \cdot 10^{-7}}{\left(z - 1\right) + 8}\right)\frac{\left(\left(\left(\left(\left(\left(\left(\left(0.99999999999980993 + \frac{676.520368121885099}{z + 0}\right) + \frac{-1259.13921672240281}{\left(z - 1\right) + 2}\right) + \frac{771.32342877765313}{\left(z - 1\right) + 3}\right) + \frac{-176.615029162140587}{\left(z - 1\right) + 4}\right) + \frac{12.5073432786869052}{\left(z - 1\right) + 5}\right) + \frac{-0.138571095265720118}{\left(z - 1\right) + 6}\right) + \frac{9.98436957801957158 \cdot 10^{-6}}{\left(z - 1\right) + 7}\right) + \frac{1.50563273514931162 \cdot 10^{-7}}{\left(z - 1\right) + 8}\right) \cdot \left(\sqrt{\pi \cdot 2} \cdot {\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}^{z}\right)}{{\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}^{\left(1 - 0.5\right)} \cdot e^{\left(\left(z - 1\right) + 7\right) + 0.5}}double f(double z) {
double r156262 = atan2(1.0, 0.0);
double r156263 = 2.0;
double r156264 = r156262 * r156263;
double r156265 = sqrt(r156264);
double r156266 = z;
double r156267 = 1.0;
double r156268 = r156266 - r156267;
double r156269 = 7.0;
double r156270 = r156268 + r156269;
double r156271 = 0.5;
double r156272 = r156270 + r156271;
double r156273 = r156268 + r156271;
double r156274 = pow(r156272, r156273);
double r156275 = r156265 * r156274;
double r156276 = -r156272;
double r156277 = exp(r156276);
double r156278 = r156275 * r156277;
double r156279 = 0.9999999999998099;
double r156280 = 676.5203681218851;
double r156281 = r156268 + r156267;
double r156282 = r156280 / r156281;
double r156283 = r156279 + r156282;
double r156284 = -1259.1392167224028;
double r156285 = r156268 + r156263;
double r156286 = r156284 / r156285;
double r156287 = r156283 + r156286;
double r156288 = 771.3234287776531;
double r156289 = 3.0;
double r156290 = r156268 + r156289;
double r156291 = r156288 / r156290;
double r156292 = r156287 + r156291;
double r156293 = -176.6150291621406;
double r156294 = 4.0;
double r156295 = r156268 + r156294;
double r156296 = r156293 / r156295;
double r156297 = r156292 + r156296;
double r156298 = 12.507343278686905;
double r156299 = 5.0;
double r156300 = r156268 + r156299;
double r156301 = r156298 / r156300;
double r156302 = r156297 + r156301;
double r156303 = -0.13857109526572012;
double r156304 = 6.0;
double r156305 = r156268 + r156304;
double r156306 = r156303 / r156305;
double r156307 = r156302 + r156306;
double r156308 = 9.984369578019572e-06;
double r156309 = r156308 / r156270;
double r156310 = r156307 + r156309;
double r156311 = 1.5056327351493116e-07;
double r156312 = 8.0;
double r156313 = r156268 + r156312;
double r156314 = r156311 / r156313;
double r156315 = r156310 + r156314;
double r156316 = r156278 * r156315;
return r156316;
}
double f(double z) {
double r156317 = 0.9999999999998099;
double r156318 = 676.5203681218851;
double r156319 = z;
double r156320 = 0.0;
double r156321 = r156319 + r156320;
double r156322 = r156318 / r156321;
double r156323 = r156317 + r156322;
double r156324 = -1259.1392167224028;
double r156325 = 1.0;
double r156326 = r156319 - r156325;
double r156327 = 2.0;
double r156328 = r156326 + r156327;
double r156329 = r156324 / r156328;
double r156330 = r156323 + r156329;
double r156331 = 771.3234287776531;
double r156332 = 3.0;
double r156333 = r156326 + r156332;
double r156334 = r156331 / r156333;
double r156335 = r156330 + r156334;
double r156336 = -176.6150291621406;
double r156337 = 4.0;
double r156338 = r156326 + r156337;
double r156339 = r156336 / r156338;
double r156340 = r156335 + r156339;
double r156341 = 12.507343278686905;
double r156342 = 5.0;
double r156343 = r156326 + r156342;
double r156344 = r156341 / r156343;
double r156345 = r156340 + r156344;
double r156346 = -0.13857109526572012;
double r156347 = 6.0;
double r156348 = r156326 + r156347;
double r156349 = r156346 / r156348;
double r156350 = r156345 + r156349;
double r156351 = 9.984369578019572e-06;
double r156352 = 7.0;
double r156353 = r156326 + r156352;
double r156354 = r156351 / r156353;
double r156355 = r156350 + r156354;
double r156356 = 1.5056327351493116e-07;
double r156357 = 8.0;
double r156358 = r156326 + r156357;
double r156359 = r156356 / r156358;
double r156360 = r156355 + r156359;
double r156361 = atan2(1.0, 0.0);
double r156362 = r156361 * r156327;
double r156363 = sqrt(r156362);
double r156364 = 0.5;
double r156365 = r156353 + r156364;
double r156366 = pow(r156365, r156319);
double r156367 = r156363 * r156366;
double r156368 = r156360 * r156367;
double r156369 = r156325 - r156364;
double r156370 = pow(r156365, r156369);
double r156371 = exp(r156365);
double r156372 = r156370 * r156371;
double r156373 = r156368 / r156372;
return r156373;
}



Bits error versus z
Results
Initial program 61.5
rmApplied sub-neg61.5
Applied associate-+l+0.9
Simplified0.9
rmApplied exp-neg1.1
Applied associate-+l-1.1
Applied pow-sub1.1
Applied associate-*r/1.1
Applied frac-times0.9
Applied associate-*l/0.9
Simplified0.9
Final simplification0.9
herbie shell --seed 2020057 +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.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)))))