\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.9999999999998099298181841732002794742584 + \frac{676.5203681218850988443591631948947906494}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.139216722402807135949842631816864014}{\left(\left(1 - z\right) - 1\right) + 2}\right) + \frac{771.3234287776531346025876700878143310547}{\left(\left(1 - z\right) - 1\right) + 3}\right) + \frac{-176.6150291621405870046146446838974952698}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \frac{12.50734327868690520801919774385169148445}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.1385710952657201178173096423051902092993}{\left(\left(1 - z\right) - 1\right) + 6}\right) + \frac{9.984369578019571583242346146658263705831 \cdot 10^{-6}}{\left(\left(1 - z\right) - 1\right) + 7}\right) + \frac{1.505632735149311617592788074479481785772 \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.9999999999998099298181841732002794742584 + \frac{676.5203681218850988443591631948947906494}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.139216722402807135949842631816864014}{\left(\left(1 - z\right) - 1\right) + 2}\right) + \frac{771.3234287776531346025876700878143310547}{\left(\left(1 - z\right) - 1\right) + 3}\right) + \frac{-176.6150291621405870046146446838974952698}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \frac{12.50734327868690520801919774385169148445}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.1385710952657201178173096423051902092993}{\left(\left(1 - z\right) - 1\right) + 6}\right) + \frac{9.984369578019571583242346146658263705831 \cdot 10^{-6}}{\left(\left(1 - z\right) - 1\right) + 7}\right) + \frac{1.505632735149311617592788074479481785772 \cdot 10^{-7}}{\left(\left(1 - z\right) - 1\right) + 8}\right)\right)double f(double z) {
double r150524 = atan2(1.0, 0.0);
double r150525 = z;
double r150526 = r150524 * r150525;
double r150527 = sin(r150526);
double r150528 = r150524 / r150527;
double r150529 = 2.0;
double r150530 = r150524 * r150529;
double r150531 = sqrt(r150530);
double r150532 = 1.0;
double r150533 = r150532 - r150525;
double r150534 = r150533 - r150532;
double r150535 = 7.0;
double r150536 = r150534 + r150535;
double r150537 = 0.5;
double r150538 = r150536 + r150537;
double r150539 = r150534 + r150537;
double r150540 = pow(r150538, r150539);
double r150541 = r150531 * r150540;
double r150542 = -r150538;
double r150543 = exp(r150542);
double r150544 = r150541 * r150543;
double r150545 = 0.9999999999998099;
double r150546 = 676.5203681218851;
double r150547 = r150534 + r150532;
double r150548 = r150546 / r150547;
double r150549 = r150545 + r150548;
double r150550 = -1259.1392167224028;
double r150551 = r150534 + r150529;
double r150552 = r150550 / r150551;
double r150553 = r150549 + r150552;
double r150554 = 771.3234287776531;
double r150555 = 3.0;
double r150556 = r150534 + r150555;
double r150557 = r150554 / r150556;
double r150558 = r150553 + r150557;
double r150559 = -176.6150291621406;
double r150560 = 4.0;
double r150561 = r150534 + r150560;
double r150562 = r150559 / r150561;
double r150563 = r150558 + r150562;
double r150564 = 12.507343278686905;
double r150565 = 5.0;
double r150566 = r150534 + r150565;
double r150567 = r150564 / r150566;
double r150568 = r150563 + r150567;
double r150569 = -0.13857109526572012;
double r150570 = 6.0;
double r150571 = r150534 + r150570;
double r150572 = r150569 / r150571;
double r150573 = r150568 + r150572;
double r150574 = 9.984369578019572e-06;
double r150575 = r150574 / r150536;
double r150576 = r150573 + r150575;
double r150577 = 1.5056327351493116e-07;
double r150578 = 8.0;
double r150579 = r150534 + r150578;
double r150580 = r150577 / r150579;
double r150581 = r150576 + r150580;
double r150582 = r150544 * r150581;
double r150583 = r150528 * r150582;
return r150583;
}
double f(double z) {
double r150584 = atan2(1.0, 0.0);
double r150585 = z;
double r150586 = r150584 * r150585;
double r150587 = sin(r150586);
double r150588 = r150584 / r150587;
double r150589 = 2.0;
double r150590 = r150584 * r150589;
double r150591 = sqrt(r150590);
double r150592 = 1.0;
double r150593 = r150592 - r150585;
double r150594 = r150593 - r150592;
double r150595 = 7.0;
double r150596 = r150594 + r150595;
double r150597 = 0.5;
double r150598 = r150596 + r150597;
double r150599 = r150594 + r150597;
double r150600 = pow(r150598, r150599);
double r150601 = r150591 * r150600;
double r150602 = -r150598;
double r150603 = exp(r150602);
double r150604 = r150601 * r150603;
double r150605 = 0.9999999999998099;
double r150606 = 676.5203681218851;
double r150607 = r150594 + r150592;
double r150608 = r150606 / r150607;
double r150609 = r150605 + r150608;
double r150610 = -1259.1392167224028;
double r150611 = r150594 + r150589;
double r150612 = r150610 / r150611;
double r150613 = r150609 + r150612;
double r150614 = 771.3234287776531;
double r150615 = 3.0;
double r150616 = r150594 + r150615;
double r150617 = r150614 / r150616;
double r150618 = r150613 + r150617;
double r150619 = -176.6150291621406;
double r150620 = 4.0;
double r150621 = r150594 + r150620;
double r150622 = r150619 / r150621;
double r150623 = r150618 + r150622;
double r150624 = 12.507343278686905;
double r150625 = 5.0;
double r150626 = r150594 + r150625;
double r150627 = r150624 / r150626;
double r150628 = r150623 + r150627;
double r150629 = -0.13857109526572012;
double r150630 = 6.0;
double r150631 = r150594 + r150630;
double r150632 = r150629 / r150631;
double r150633 = r150628 + r150632;
double r150634 = 9.984369578019572e-06;
double r150635 = r150634 / r150596;
double r150636 = r150633 + r150635;
double r150637 = 1.5056327351493116e-07;
double r150638 = 8.0;
double r150639 = r150594 + r150638;
double r150640 = r150637 / r150639;
double r150641 = r150636 + r150640;
double r150642 = r150604 * r150641;
double r150643 = r150588 * r150642;
return r150643;
}



Bits error versus z
Results
Initial program 1.8
Final simplification1.8
herbie shell --seed 2019322
(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.99999999999980993 (/ 676.520368121885099 (+ (- (- 1 z) 1) 1))) (/ -1259.13921672240281 (+ (- (- 1 z) 1) 2))) (/ 771.32342877765313 (+ (- (- 1 z) 1) 3))) (/ -176.615029162140587 (+ (- (- 1 z) 1) 4))) (/ 12.5073432786869052 (+ (- (- 1 z) 1) 5))) (/ -0.138571095265720118 (+ (- (- 1 z) 1) 6))) (/ 9.98436957801957158e-6 (+ (- (- 1 z) 1) 7))) (/ 1.50563273514931162e-7 (+ (- (- 1 z) 1) 8))))))