\frac{\pi}{\sin \left(\pi \cdot z\right)} \cdot \left(\left(\left(\sqrt{\pi \cdot 2} \cdot {\left(\left(\left(\left(1 - z\right) - 1\right) + 7\right) + 0.5\right)}^{\left(\left(\left(1 - z\right) - 1\right) + 0.5\right)}\right) \cdot e^{-\left(\left(\left(\left(1 - z\right) - 1\right) + 7\right) + 0.5\right)}\right) \cdot \left(\left(\left(\left(\left(\left(\left(\left(0.99999999999980993 + \frac{676.520368121885099}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.13921672240281}{\left(\left(1 - z\right) - 1\right) + 2}\right) + \frac{771.32342877765313}{\left(\left(1 - z\right) - 1\right) + 3}\right) + \frac{-176.615029162140587}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \frac{12.5073432786869052}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.138571095265720118}{\left(\left(1 - z\right) - 1\right) + 6}\right) + \frac{9.98436957801957158 \cdot 10^{-6}}{\left(\left(1 - z\right) - 1\right) + 7}\right) + \frac{1.50563273514931162 \cdot 10^{-7}}{\left(\left(1 - z\right) - 1\right) + 8}\right)\right)\frac{\pi}{\sin \left(\pi \cdot z\right)} \cdot \left(\left(\left(\sqrt{\pi \cdot 2} \cdot {\left(\left(\left(\left(1 - z\right) - 1\right) + 7\right) + 0.5\right)}^{\left(\left(\left(1 - z\right) - 1\right) + 0.5\right)}\right) \cdot e^{-\left(\left(\left(\left(1 - z\right) - 1\right) + 7\right) + 0.5\right)}\right) \cdot \left(\left(\left(\left(\left(\left(\left(\left(0.99999999999980993 + \frac{676.520368121885099}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.13921672240281}{\left(\left(1 - z\right) - 1\right) + 2}\right) + \frac{771.32342877765313}{\left(\left(1 - z\right) - 1\right) + 3}\right) + \frac{-176.615029162140587}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \frac{12.5073432786869052}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.138571095265720118}{\left(\left(1 - z\right) - 1\right) + 6}\right) + \frac{9.98436957801957158 \cdot 10^{-6}}{\left(\left(1 - z\right) - 1\right) + 7}\right) + \frac{1.50563273514931162 \cdot 10^{-7}}{\left(\left(1 - z\right) - 1\right) + 8}\right)\right)double f(double z) {
double r129390 = atan2(1.0, 0.0);
double r129391 = z;
double r129392 = r129390 * r129391;
double r129393 = sin(r129392);
double r129394 = r129390 / r129393;
double r129395 = 2.0;
double r129396 = r129390 * r129395;
double r129397 = sqrt(r129396);
double r129398 = 1.0;
double r129399 = r129398 - r129391;
double r129400 = r129399 - r129398;
double r129401 = 7.0;
double r129402 = r129400 + r129401;
double r129403 = 0.5;
double r129404 = r129402 + r129403;
double r129405 = r129400 + r129403;
double r129406 = pow(r129404, r129405);
double r129407 = r129397 * r129406;
double r129408 = -r129404;
double r129409 = exp(r129408);
double r129410 = r129407 * r129409;
double r129411 = 0.9999999999998099;
double r129412 = 676.5203681218851;
double r129413 = r129400 + r129398;
double r129414 = r129412 / r129413;
double r129415 = r129411 + r129414;
double r129416 = -1259.1392167224028;
double r129417 = r129400 + r129395;
double r129418 = r129416 / r129417;
double r129419 = r129415 + r129418;
double r129420 = 771.3234287776531;
double r129421 = 3.0;
double r129422 = r129400 + r129421;
double r129423 = r129420 / r129422;
double r129424 = r129419 + r129423;
double r129425 = -176.6150291621406;
double r129426 = 4.0;
double r129427 = r129400 + r129426;
double r129428 = r129425 / r129427;
double r129429 = r129424 + r129428;
double r129430 = 12.507343278686905;
double r129431 = 5.0;
double r129432 = r129400 + r129431;
double r129433 = r129430 / r129432;
double r129434 = r129429 + r129433;
double r129435 = -0.13857109526572012;
double r129436 = 6.0;
double r129437 = r129400 + r129436;
double r129438 = r129435 / r129437;
double r129439 = r129434 + r129438;
double r129440 = 9.984369578019572e-06;
double r129441 = r129440 / r129402;
double r129442 = r129439 + r129441;
double r129443 = 1.5056327351493116e-07;
double r129444 = 8.0;
double r129445 = r129400 + r129444;
double r129446 = r129443 / r129445;
double r129447 = r129442 + r129446;
double r129448 = r129410 * r129447;
double r129449 = r129394 * r129448;
return r129449;
}
double f(double z) {
double r129450 = atan2(1.0, 0.0);
double r129451 = z;
double r129452 = r129450 * r129451;
double r129453 = sin(r129452);
double r129454 = r129450 / r129453;
double r129455 = 2.0;
double r129456 = r129450 * r129455;
double r129457 = sqrt(r129456);
double r129458 = 1.0;
double r129459 = r129458 - r129451;
double r129460 = r129459 - r129458;
double r129461 = 7.0;
double r129462 = r129460 + r129461;
double r129463 = 0.5;
double r129464 = r129462 + r129463;
double r129465 = r129460 + r129463;
double r129466 = pow(r129464, r129465);
double r129467 = r129457 * r129466;
double r129468 = -r129464;
double r129469 = exp(r129468);
double r129470 = r129467 * r129469;
double r129471 = 0.9999999999998099;
double r129472 = 676.5203681218851;
double r129473 = r129460 + r129458;
double r129474 = r129472 / r129473;
double r129475 = r129471 + r129474;
double r129476 = -1259.1392167224028;
double r129477 = r129460 + r129455;
double r129478 = r129476 / r129477;
double r129479 = r129475 + r129478;
double r129480 = 771.3234287776531;
double r129481 = 3.0;
double r129482 = r129460 + r129481;
double r129483 = r129480 / r129482;
double r129484 = r129479 + r129483;
double r129485 = -176.6150291621406;
double r129486 = 4.0;
double r129487 = r129460 + r129486;
double r129488 = r129485 / r129487;
double r129489 = r129484 + r129488;
double r129490 = 12.507343278686905;
double r129491 = 5.0;
double r129492 = r129460 + r129491;
double r129493 = r129490 / r129492;
double r129494 = r129489 + r129493;
double r129495 = -0.13857109526572012;
double r129496 = 6.0;
double r129497 = r129460 + r129496;
double r129498 = r129495 / r129497;
double r129499 = r129494 + r129498;
double r129500 = 9.984369578019572e-06;
double r129501 = r129500 / r129462;
double r129502 = r129499 + r129501;
double r129503 = 1.5056327351493116e-07;
double r129504 = 8.0;
double r129505 = r129460 + r129504;
double r129506 = r129503 / r129505;
double r129507 = r129502 + r129506;
double r129508 = r129470 * r129507;
double r129509 = r129454 * r129508;
return r129509;
}



Bits error versus z
Results
Initial program 1.8
Final simplification1.8
herbie shell --seed 2020003 +o rules:numerics
(FPCore (z)
:name "Jmat.Real.gamma, branch z less than 0.5"
:precision binary64
(* (/ PI (sin (* PI z))) (* (* (* (sqrt (* PI 2)) (pow (+ (+ (- (- 1 z) 1) 7) 0.5) (+ (- (- 1 z) 1) 0.5))) (exp (- (+ (+ (- (- 1 z) 1) 7) 0.5)))) (+ (+ (+ (+ (+ (+ (+ (+ 0.9999999999998099 (/ 676.5203681218851 (+ (- (- 1 z) 1) 1))) (/ -1259.1392167224028 (+ (- (- 1 z) 1) 2))) (/ 771.3234287776531 (+ (- (- 1 z) 1) 3))) (/ -176.6150291621406 (+ (- (- 1 z) 1) 4))) (/ 12.507343278686905 (+ (- (- 1 z) 1) 5))) (/ -0.13857109526572012 (+ (- (- 1 z) 1) 6))) (/ 9.984369578019572e-06 (+ (- (- 1 z) 1) 7))) (/ 1.5056327351493116e-07 (+ (- (- 1 z) 1) 8))))))