\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 r117638 = atan2(1.0, 0.0);
double r117639 = z;
double r117640 = r117638 * r117639;
double r117641 = sin(r117640);
double r117642 = r117638 / r117641;
double r117643 = 2.0;
double r117644 = r117638 * r117643;
double r117645 = sqrt(r117644);
double r117646 = 1.0;
double r117647 = r117646 - r117639;
double r117648 = r117647 - r117646;
double r117649 = 7.0;
double r117650 = r117648 + r117649;
double r117651 = 0.5;
double r117652 = r117650 + r117651;
double r117653 = r117648 + r117651;
double r117654 = pow(r117652, r117653);
double r117655 = r117645 * r117654;
double r117656 = -r117652;
double r117657 = exp(r117656);
double r117658 = r117655 * r117657;
double r117659 = 0.9999999999998099;
double r117660 = 676.5203681218851;
double r117661 = r117648 + r117646;
double r117662 = r117660 / r117661;
double r117663 = r117659 + r117662;
double r117664 = -1259.1392167224028;
double r117665 = r117648 + r117643;
double r117666 = r117664 / r117665;
double r117667 = r117663 + r117666;
double r117668 = 771.3234287776531;
double r117669 = 3.0;
double r117670 = r117648 + r117669;
double r117671 = r117668 / r117670;
double r117672 = r117667 + r117671;
double r117673 = -176.6150291621406;
double r117674 = 4.0;
double r117675 = r117648 + r117674;
double r117676 = r117673 / r117675;
double r117677 = r117672 + r117676;
double r117678 = 12.507343278686905;
double r117679 = 5.0;
double r117680 = r117648 + r117679;
double r117681 = r117678 / r117680;
double r117682 = r117677 + r117681;
double r117683 = -0.13857109526572012;
double r117684 = 6.0;
double r117685 = r117648 + r117684;
double r117686 = r117683 / r117685;
double r117687 = r117682 + r117686;
double r117688 = 9.984369578019572e-06;
double r117689 = r117688 / r117650;
double r117690 = r117687 + r117689;
double r117691 = 1.5056327351493116e-07;
double r117692 = 8.0;
double r117693 = r117648 + r117692;
double r117694 = r117691 / r117693;
double r117695 = r117690 + r117694;
double r117696 = r117658 * r117695;
double r117697 = r117642 * r117696;
return r117697;
}
double f(double z) {
double r117698 = atan2(1.0, 0.0);
double r117699 = z;
double r117700 = r117698 * r117699;
double r117701 = sin(r117700);
double r117702 = r117698 / r117701;
double r117703 = 2.0;
double r117704 = r117698 * r117703;
double r117705 = sqrt(r117704);
double r117706 = 1.0;
double r117707 = r117706 - r117699;
double r117708 = r117707 - r117706;
double r117709 = 7.0;
double r117710 = r117708 + r117709;
double r117711 = 0.5;
double r117712 = r117710 + r117711;
double r117713 = r117708 + r117711;
double r117714 = pow(r117712, r117713);
double r117715 = r117705 * r117714;
double r117716 = -r117712;
double r117717 = exp(r117716);
double r117718 = r117715 * r117717;
double r117719 = 0.9999999999998099;
double r117720 = 676.5203681218851;
double r117721 = r117708 + r117706;
double r117722 = r117720 / r117721;
double r117723 = r117719 + r117722;
double r117724 = -1259.1392167224028;
double r117725 = r117708 + r117703;
double r117726 = r117724 / r117725;
double r117727 = r117723 + r117726;
double r117728 = 771.3234287776531;
double r117729 = 3.0;
double r117730 = r117708 + r117729;
double r117731 = r117728 / r117730;
double r117732 = r117727 + r117731;
double r117733 = -176.6150291621406;
double r117734 = 4.0;
double r117735 = r117708 + r117734;
double r117736 = r117733 / r117735;
double r117737 = r117732 + r117736;
double r117738 = 12.507343278686905;
double r117739 = 5.0;
double r117740 = r117708 + r117739;
double r117741 = r117738 / r117740;
double r117742 = r117737 + r117741;
double r117743 = -0.13857109526572012;
double r117744 = 6.0;
double r117745 = r117708 + r117744;
double r117746 = r117743 / r117745;
double r117747 = r117742 + r117746;
double r117748 = 9.984369578019572e-06;
double r117749 = r117748 / r117710;
double r117750 = r117747 + r117749;
double r117751 = 1.5056327351493116e-07;
double r117752 = 8.0;
double r117753 = r117708 + r117752;
double r117754 = r117751 / r117753;
double r117755 = r117750 + r117754;
double r117756 = r117718 * r117755;
double r117757 = r117702 * r117756;
return r117757;
}



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