\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 r151693 = atan2(1.0, 0.0);
double r151694 = z;
double r151695 = r151693 * r151694;
double r151696 = sin(r151695);
double r151697 = r151693 / r151696;
double r151698 = 2.0;
double r151699 = r151693 * r151698;
double r151700 = sqrt(r151699);
double r151701 = 1.0;
double r151702 = r151701 - r151694;
double r151703 = r151702 - r151701;
double r151704 = 7.0;
double r151705 = r151703 + r151704;
double r151706 = 0.5;
double r151707 = r151705 + r151706;
double r151708 = r151703 + r151706;
double r151709 = pow(r151707, r151708);
double r151710 = r151700 * r151709;
double r151711 = -r151707;
double r151712 = exp(r151711);
double r151713 = r151710 * r151712;
double r151714 = 0.9999999999998099;
double r151715 = 676.5203681218851;
double r151716 = r151703 + r151701;
double r151717 = r151715 / r151716;
double r151718 = r151714 + r151717;
double r151719 = -1259.1392167224028;
double r151720 = r151703 + r151698;
double r151721 = r151719 / r151720;
double r151722 = r151718 + r151721;
double r151723 = 771.3234287776531;
double r151724 = 3.0;
double r151725 = r151703 + r151724;
double r151726 = r151723 / r151725;
double r151727 = r151722 + r151726;
double r151728 = -176.6150291621406;
double r151729 = 4.0;
double r151730 = r151703 + r151729;
double r151731 = r151728 / r151730;
double r151732 = r151727 + r151731;
double r151733 = 12.507343278686905;
double r151734 = 5.0;
double r151735 = r151703 + r151734;
double r151736 = r151733 / r151735;
double r151737 = r151732 + r151736;
double r151738 = -0.13857109526572012;
double r151739 = 6.0;
double r151740 = r151703 + r151739;
double r151741 = r151738 / r151740;
double r151742 = r151737 + r151741;
double r151743 = 9.984369578019572e-06;
double r151744 = r151743 / r151705;
double r151745 = r151742 + r151744;
double r151746 = 1.5056327351493116e-07;
double r151747 = 8.0;
double r151748 = r151703 + r151747;
double r151749 = r151746 / r151748;
double r151750 = r151745 + r151749;
double r151751 = r151713 * r151750;
double r151752 = r151697 * r151751;
return r151752;
}
double f(double z) {
double r151753 = atan2(1.0, 0.0);
double r151754 = z;
double r151755 = r151753 * r151754;
double r151756 = sin(r151755);
double r151757 = r151753 / r151756;
double r151758 = 2.0;
double r151759 = r151753 * r151758;
double r151760 = sqrt(r151759);
double r151761 = 1.0;
double r151762 = r151761 - r151754;
double r151763 = r151762 - r151761;
double r151764 = 7.0;
double r151765 = r151763 + r151764;
double r151766 = 0.5;
double r151767 = r151765 + r151766;
double r151768 = r151763 + r151766;
double r151769 = pow(r151767, r151768);
double r151770 = r151760 * r151769;
double r151771 = -r151767;
double r151772 = exp(r151771);
double r151773 = r151770 * r151772;
double r151774 = 0.9999999999998099;
double r151775 = 676.5203681218851;
double r151776 = r151763 + r151761;
double r151777 = r151775 / r151776;
double r151778 = r151774 + r151777;
double r151779 = -1259.1392167224028;
double r151780 = r151763 + r151758;
double r151781 = r151779 / r151780;
double r151782 = r151778 + r151781;
double r151783 = 771.3234287776531;
double r151784 = 3.0;
double r151785 = r151763 + r151784;
double r151786 = r151783 / r151785;
double r151787 = r151782 + r151786;
double r151788 = -176.6150291621406;
double r151789 = 4.0;
double r151790 = r151763 + r151789;
double r151791 = r151788 / r151790;
double r151792 = r151787 + r151791;
double r151793 = 12.507343278686905;
double r151794 = 5.0;
double r151795 = r151763 + r151794;
double r151796 = r151793 / r151795;
double r151797 = r151792 + r151796;
double r151798 = -0.13857109526572012;
double r151799 = 6.0;
double r151800 = r151763 + r151799;
double r151801 = r151798 / r151800;
double r151802 = r151797 + r151801;
double r151803 = 9.984369578019572e-06;
double r151804 = r151803 / r151765;
double r151805 = r151802 + r151804;
double r151806 = 1.5056327351493116e-07;
double r151807 = 8.0;
double r151808 = r151763 + r151807;
double r151809 = r151806 / r151808;
double r151810 = r151805 + r151809;
double r151811 = r151773 * r151810;
double r151812 = r151757 * r151811;
return r151812;
}



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