\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 r131463 = atan2(1.0, 0.0);
double r131464 = z;
double r131465 = r131463 * r131464;
double r131466 = sin(r131465);
double r131467 = r131463 / r131466;
double r131468 = 2.0;
double r131469 = r131463 * r131468;
double r131470 = sqrt(r131469);
double r131471 = 1.0;
double r131472 = r131471 - r131464;
double r131473 = r131472 - r131471;
double r131474 = 7.0;
double r131475 = r131473 + r131474;
double r131476 = 0.5;
double r131477 = r131475 + r131476;
double r131478 = r131473 + r131476;
double r131479 = pow(r131477, r131478);
double r131480 = r131470 * r131479;
double r131481 = -r131477;
double r131482 = exp(r131481);
double r131483 = r131480 * r131482;
double r131484 = 0.9999999999998099;
double r131485 = 676.5203681218851;
double r131486 = r131473 + r131471;
double r131487 = r131485 / r131486;
double r131488 = r131484 + r131487;
double r131489 = -1259.1392167224028;
double r131490 = r131473 + r131468;
double r131491 = r131489 / r131490;
double r131492 = r131488 + r131491;
double r131493 = 771.3234287776531;
double r131494 = 3.0;
double r131495 = r131473 + r131494;
double r131496 = r131493 / r131495;
double r131497 = r131492 + r131496;
double r131498 = -176.6150291621406;
double r131499 = 4.0;
double r131500 = r131473 + r131499;
double r131501 = r131498 / r131500;
double r131502 = r131497 + r131501;
double r131503 = 12.507343278686905;
double r131504 = 5.0;
double r131505 = r131473 + r131504;
double r131506 = r131503 / r131505;
double r131507 = r131502 + r131506;
double r131508 = -0.13857109526572012;
double r131509 = 6.0;
double r131510 = r131473 + r131509;
double r131511 = r131508 / r131510;
double r131512 = r131507 + r131511;
double r131513 = 9.984369578019572e-06;
double r131514 = r131513 / r131475;
double r131515 = r131512 + r131514;
double r131516 = 1.5056327351493116e-07;
double r131517 = 8.0;
double r131518 = r131473 + r131517;
double r131519 = r131516 / r131518;
double r131520 = r131515 + r131519;
double r131521 = r131483 * r131520;
double r131522 = r131467 * r131521;
return r131522;
}
double f(double z) {
double r131523 = atan2(1.0, 0.0);
double r131524 = z;
double r131525 = r131523 * r131524;
double r131526 = sin(r131525);
double r131527 = r131523 / r131526;
double r131528 = 2.0;
double r131529 = r131523 * r131528;
double r131530 = sqrt(r131529);
double r131531 = 1.0;
double r131532 = r131531 - r131524;
double r131533 = r131532 - r131531;
double r131534 = 7.0;
double r131535 = r131533 + r131534;
double r131536 = 0.5;
double r131537 = r131535 + r131536;
double r131538 = r131533 + r131536;
double r131539 = pow(r131537, r131538);
double r131540 = r131530 * r131539;
double r131541 = -r131537;
double r131542 = exp(r131541);
double r131543 = r131540 * r131542;
double r131544 = 0.9999999999998099;
double r131545 = 676.5203681218851;
double r131546 = r131533 + r131531;
double r131547 = r131545 / r131546;
double r131548 = r131544 + r131547;
double r131549 = -1259.1392167224028;
double r131550 = r131533 + r131528;
double r131551 = r131549 / r131550;
double r131552 = r131548 + r131551;
double r131553 = 771.3234287776531;
double r131554 = 3.0;
double r131555 = r131533 + r131554;
double r131556 = r131553 / r131555;
double r131557 = r131552 + r131556;
double r131558 = -176.6150291621406;
double r131559 = 4.0;
double r131560 = r131533 + r131559;
double r131561 = r131558 / r131560;
double r131562 = r131557 + r131561;
double r131563 = 12.507343278686905;
double r131564 = 5.0;
double r131565 = r131533 + r131564;
double r131566 = r131563 / r131565;
double r131567 = r131562 + r131566;
double r131568 = -0.13857109526572012;
double r131569 = 6.0;
double r131570 = r131533 + r131569;
double r131571 = r131568 / r131570;
double r131572 = r131567 + r131571;
double r131573 = 9.984369578019572e-06;
double r131574 = r131573 / r131535;
double r131575 = r131572 + r131574;
double r131576 = 1.5056327351493116e-07;
double r131577 = 8.0;
double r131578 = r131533 + r131577;
double r131579 = r131576 / r131578;
double r131580 = r131575 + r131579;
double r131581 = r131543 * r131580;
double r131582 = r131527 * r131581;
return r131582;
}



Bits error versus z
Results
Initial program 1.8
Final simplification1.8
herbie shell --seed 2020100 +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))))))