\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 r122668 = atan2(1.0, 0.0);
double r122669 = z;
double r122670 = r122668 * r122669;
double r122671 = sin(r122670);
double r122672 = r122668 / r122671;
double r122673 = 2.0;
double r122674 = r122668 * r122673;
double r122675 = sqrt(r122674);
double r122676 = 1.0;
double r122677 = r122676 - r122669;
double r122678 = r122677 - r122676;
double r122679 = 7.0;
double r122680 = r122678 + r122679;
double r122681 = 0.5;
double r122682 = r122680 + r122681;
double r122683 = r122678 + r122681;
double r122684 = pow(r122682, r122683);
double r122685 = r122675 * r122684;
double r122686 = -r122682;
double r122687 = exp(r122686);
double r122688 = r122685 * r122687;
double r122689 = 0.9999999999998099;
double r122690 = 676.5203681218851;
double r122691 = r122678 + r122676;
double r122692 = r122690 / r122691;
double r122693 = r122689 + r122692;
double r122694 = -1259.1392167224028;
double r122695 = r122678 + r122673;
double r122696 = r122694 / r122695;
double r122697 = r122693 + r122696;
double r122698 = 771.3234287776531;
double r122699 = 3.0;
double r122700 = r122678 + r122699;
double r122701 = r122698 / r122700;
double r122702 = r122697 + r122701;
double r122703 = -176.6150291621406;
double r122704 = 4.0;
double r122705 = r122678 + r122704;
double r122706 = r122703 / r122705;
double r122707 = r122702 + r122706;
double r122708 = 12.507343278686905;
double r122709 = 5.0;
double r122710 = r122678 + r122709;
double r122711 = r122708 / r122710;
double r122712 = r122707 + r122711;
double r122713 = -0.13857109526572012;
double r122714 = 6.0;
double r122715 = r122678 + r122714;
double r122716 = r122713 / r122715;
double r122717 = r122712 + r122716;
double r122718 = 9.984369578019572e-06;
double r122719 = r122718 / r122680;
double r122720 = r122717 + r122719;
double r122721 = 1.5056327351493116e-07;
double r122722 = 8.0;
double r122723 = r122678 + r122722;
double r122724 = r122721 / r122723;
double r122725 = r122720 + r122724;
double r122726 = r122688 * r122725;
double r122727 = r122672 * r122726;
return r122727;
}
double f(double z) {
double r122728 = atan2(1.0, 0.0);
double r122729 = z;
double r122730 = r122728 * r122729;
double r122731 = sin(r122730);
double r122732 = r122728 / r122731;
double r122733 = 2.0;
double r122734 = r122728 * r122733;
double r122735 = sqrt(r122734);
double r122736 = 1.0;
double r122737 = r122736 - r122729;
double r122738 = r122737 - r122736;
double r122739 = 7.0;
double r122740 = r122738 + r122739;
double r122741 = 0.5;
double r122742 = r122740 + r122741;
double r122743 = r122738 + r122741;
double r122744 = pow(r122742, r122743);
double r122745 = r122735 * r122744;
double r122746 = -r122742;
double r122747 = exp(r122746);
double r122748 = r122745 * r122747;
double r122749 = 0.9999999999998099;
double r122750 = 676.5203681218851;
double r122751 = r122738 + r122736;
double r122752 = r122750 / r122751;
double r122753 = r122749 + r122752;
double r122754 = -1259.1392167224028;
double r122755 = r122738 + r122733;
double r122756 = r122754 / r122755;
double r122757 = r122753 + r122756;
double r122758 = 771.3234287776531;
double r122759 = 3.0;
double r122760 = r122738 + r122759;
double r122761 = r122758 / r122760;
double r122762 = r122757 + r122761;
double r122763 = -176.6150291621406;
double r122764 = 4.0;
double r122765 = r122738 + r122764;
double r122766 = r122763 / r122765;
double r122767 = r122762 + r122766;
double r122768 = 12.507343278686905;
double r122769 = 5.0;
double r122770 = r122738 + r122769;
double r122771 = r122768 / r122770;
double r122772 = r122767 + r122771;
double r122773 = -0.13857109526572012;
double r122774 = 6.0;
double r122775 = r122738 + r122774;
double r122776 = r122773 / r122775;
double r122777 = r122772 + r122776;
double r122778 = 9.984369578019572e-06;
double r122779 = r122778 / r122740;
double r122780 = r122777 + r122779;
double r122781 = 1.5056327351493116e-07;
double r122782 = 8.0;
double r122783 = r122738 + r122782;
double r122784 = r122781 / r122783;
double r122785 = r122780 + r122784;
double r122786 = r122748 * r122785;
double r122787 = r122732 * r122786;
return r122787;
}



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