\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.9999999999998099 + \frac{676.5203681218851}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.1392167224028}{\left(\left(1 - z\right) - 1\right) + 2}\right) + \frac{771.3234287776531}{\left(\left(1 - z\right) - 1\right) + 3}\right) + \frac{-176.6150291621406}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \frac{12.507343278686905}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.13857109526572012}{\left(\left(1 - z\right) - 1\right) + 6}\right) + \frac{9.984369578019572 \cdot 10^{-06}}{\left(\left(1 - z\right) - 1\right) + 7}\right) + \frac{1.5056327351493116 \cdot 10^{-07}}{\left(\left(1 - z\right) - 1\right) + 8}\right)\right)\left(\left(\left(\sqrt{2 \cdot \pi} \cdot {\left(\left(7 + \left(\left(1 - z\right) - 1\right)\right) + 0.5\right)}^{\left(0.5 + \left(\left(1 - z\right) - 1\right)\right)}\right) \cdot e^{-\left(\left(7 + \left(\left(1 - z\right) - 1\right)\right) + 0.5\right)}\right) \cdot \left(\frac{1.5056327351493116 \cdot 10^{-07}}{8 + \left(\left(1 - z\right) - 1\right)} + \left(\frac{9.984369578019572 \cdot 10^{-06}}{7 + \left(\left(1 - z\right) - 1\right)} + \left(\left(\left(\frac{-176.6150291621406}{\left(\left(1 - z\right) - 1\right) + 4} + \left(\frac{771.3234287776531}{3 + \left(\left(1 - z\right) - 1\right)} + \left(\left(0.9999999999998099 + \frac{676.5203681218851}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.1392167224028}{\left(\left(1 - z\right) - 1\right) + 2}\right)\right)\right) + \frac{12.507343278686905}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.13857109526572012}{6 + \left(\left(1 - z\right) - 1\right)}\right)\right)\right)\right) \cdot \frac{\pi}{\sin \left(\pi \cdot z\right)}double f(double z) {
double r1735524 = atan2(1.0, 0.0);
double r1735525 = z;
double r1735526 = r1735524 * r1735525;
double r1735527 = sin(r1735526);
double r1735528 = r1735524 / r1735527;
double r1735529 = 2.0;
double r1735530 = r1735524 * r1735529;
double r1735531 = sqrt(r1735530);
double r1735532 = 1.0;
double r1735533 = r1735532 - r1735525;
double r1735534 = r1735533 - r1735532;
double r1735535 = 7.0;
double r1735536 = r1735534 + r1735535;
double r1735537 = 0.5;
double r1735538 = r1735536 + r1735537;
double r1735539 = r1735534 + r1735537;
double r1735540 = pow(r1735538, r1735539);
double r1735541 = r1735531 * r1735540;
double r1735542 = -r1735538;
double r1735543 = exp(r1735542);
double r1735544 = r1735541 * r1735543;
double r1735545 = 0.9999999999998099;
double r1735546 = 676.5203681218851;
double r1735547 = r1735534 + r1735532;
double r1735548 = r1735546 / r1735547;
double r1735549 = r1735545 + r1735548;
double r1735550 = -1259.1392167224028;
double r1735551 = r1735534 + r1735529;
double r1735552 = r1735550 / r1735551;
double r1735553 = r1735549 + r1735552;
double r1735554 = 771.3234287776531;
double r1735555 = 3.0;
double r1735556 = r1735534 + r1735555;
double r1735557 = r1735554 / r1735556;
double r1735558 = r1735553 + r1735557;
double r1735559 = -176.6150291621406;
double r1735560 = 4.0;
double r1735561 = r1735534 + r1735560;
double r1735562 = r1735559 / r1735561;
double r1735563 = r1735558 + r1735562;
double r1735564 = 12.507343278686905;
double r1735565 = 5.0;
double r1735566 = r1735534 + r1735565;
double r1735567 = r1735564 / r1735566;
double r1735568 = r1735563 + r1735567;
double r1735569 = -0.13857109526572012;
double r1735570 = 6.0;
double r1735571 = r1735534 + r1735570;
double r1735572 = r1735569 / r1735571;
double r1735573 = r1735568 + r1735572;
double r1735574 = 9.984369578019572e-06;
double r1735575 = r1735574 / r1735536;
double r1735576 = r1735573 + r1735575;
double r1735577 = 1.5056327351493116e-07;
double r1735578 = 8.0;
double r1735579 = r1735534 + r1735578;
double r1735580 = r1735577 / r1735579;
double r1735581 = r1735576 + r1735580;
double r1735582 = r1735544 * r1735581;
double r1735583 = r1735528 * r1735582;
return r1735583;
}
double f(double z) {
double r1735584 = 2.0;
double r1735585 = atan2(1.0, 0.0);
double r1735586 = r1735584 * r1735585;
double r1735587 = sqrt(r1735586);
double r1735588 = 7.0;
double r1735589 = 1.0;
double r1735590 = z;
double r1735591 = r1735589 - r1735590;
double r1735592 = r1735591 - r1735589;
double r1735593 = r1735588 + r1735592;
double r1735594 = 0.5;
double r1735595 = r1735593 + r1735594;
double r1735596 = r1735594 + r1735592;
double r1735597 = pow(r1735595, r1735596);
double r1735598 = r1735587 * r1735597;
double r1735599 = -r1735595;
double r1735600 = exp(r1735599);
double r1735601 = r1735598 * r1735600;
double r1735602 = 1.5056327351493116e-07;
double r1735603 = 8.0;
double r1735604 = r1735603 + r1735592;
double r1735605 = r1735602 / r1735604;
double r1735606 = 9.984369578019572e-06;
double r1735607 = r1735606 / r1735593;
double r1735608 = -176.6150291621406;
double r1735609 = 4.0;
double r1735610 = r1735592 + r1735609;
double r1735611 = r1735608 / r1735610;
double r1735612 = 771.3234287776531;
double r1735613 = 3.0;
double r1735614 = r1735613 + r1735592;
double r1735615 = r1735612 / r1735614;
double r1735616 = 0.9999999999998099;
double r1735617 = 676.5203681218851;
double r1735618 = r1735592 + r1735589;
double r1735619 = r1735617 / r1735618;
double r1735620 = r1735616 + r1735619;
double r1735621 = -1259.1392167224028;
double r1735622 = r1735592 + r1735584;
double r1735623 = r1735621 / r1735622;
double r1735624 = r1735620 + r1735623;
double r1735625 = r1735615 + r1735624;
double r1735626 = r1735611 + r1735625;
double r1735627 = 12.507343278686905;
double r1735628 = 5.0;
double r1735629 = r1735592 + r1735628;
double r1735630 = r1735627 / r1735629;
double r1735631 = r1735626 + r1735630;
double r1735632 = -0.13857109526572012;
double r1735633 = 6.0;
double r1735634 = r1735633 + r1735592;
double r1735635 = r1735632 / r1735634;
double r1735636 = r1735631 + r1735635;
double r1735637 = r1735607 + r1735636;
double r1735638 = r1735605 + r1735637;
double r1735639 = r1735601 * r1735638;
double r1735640 = r1735585 * r1735590;
double r1735641 = sin(r1735640);
double r1735642 = r1735585 / r1735641;
double r1735643 = r1735639 * r1735642;
return r1735643;
}



Bits error versus z
Results
Initial program 1.8
Final simplification1.8
herbie shell --seed 2019154 +o rules:numerics
(FPCore (z)
:name "Jmat.Real.gamma, branch z less than 0.5"
(* (/ 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))))))