\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 r135728 = atan2(1.0, 0.0);
double r135729 = z;
double r135730 = r135728 * r135729;
double r135731 = sin(r135730);
double r135732 = r135728 / r135731;
double r135733 = 2.0;
double r135734 = r135728 * r135733;
double r135735 = sqrt(r135734);
double r135736 = 1.0;
double r135737 = r135736 - r135729;
double r135738 = r135737 - r135736;
double r135739 = 7.0;
double r135740 = r135738 + r135739;
double r135741 = 0.5;
double r135742 = r135740 + r135741;
double r135743 = r135738 + r135741;
double r135744 = pow(r135742, r135743);
double r135745 = r135735 * r135744;
double r135746 = -r135742;
double r135747 = exp(r135746);
double r135748 = r135745 * r135747;
double r135749 = 0.9999999999998099;
double r135750 = 676.5203681218851;
double r135751 = r135738 + r135736;
double r135752 = r135750 / r135751;
double r135753 = r135749 + r135752;
double r135754 = -1259.1392167224028;
double r135755 = r135738 + r135733;
double r135756 = r135754 / r135755;
double r135757 = r135753 + r135756;
double r135758 = 771.3234287776531;
double r135759 = 3.0;
double r135760 = r135738 + r135759;
double r135761 = r135758 / r135760;
double r135762 = r135757 + r135761;
double r135763 = -176.6150291621406;
double r135764 = 4.0;
double r135765 = r135738 + r135764;
double r135766 = r135763 / r135765;
double r135767 = r135762 + r135766;
double r135768 = 12.507343278686905;
double r135769 = 5.0;
double r135770 = r135738 + r135769;
double r135771 = r135768 / r135770;
double r135772 = r135767 + r135771;
double r135773 = -0.13857109526572012;
double r135774 = 6.0;
double r135775 = r135738 + r135774;
double r135776 = r135773 / r135775;
double r135777 = r135772 + r135776;
double r135778 = 9.984369578019572e-06;
double r135779 = r135778 / r135740;
double r135780 = r135777 + r135779;
double r135781 = 1.5056327351493116e-07;
double r135782 = 8.0;
double r135783 = r135738 + r135782;
double r135784 = r135781 / r135783;
double r135785 = r135780 + r135784;
double r135786 = r135748 * r135785;
double r135787 = r135732 * r135786;
return r135787;
}
double f(double z) {
double r135788 = atan2(1.0, 0.0);
double r135789 = z;
double r135790 = r135788 * r135789;
double r135791 = sin(r135790);
double r135792 = r135788 / r135791;
double r135793 = 2.0;
double r135794 = r135788 * r135793;
double r135795 = sqrt(r135794);
double r135796 = 1.0;
double r135797 = r135796 - r135789;
double r135798 = r135797 - r135796;
double r135799 = 7.0;
double r135800 = r135798 + r135799;
double r135801 = 0.5;
double r135802 = r135800 + r135801;
double r135803 = r135798 + r135801;
double r135804 = pow(r135802, r135803);
double r135805 = r135795 * r135804;
double r135806 = -r135802;
double r135807 = exp(r135806);
double r135808 = r135805 * r135807;
double r135809 = 0.9999999999998099;
double r135810 = 676.5203681218851;
double r135811 = r135798 + r135796;
double r135812 = r135810 / r135811;
double r135813 = r135809 + r135812;
double r135814 = -1259.1392167224028;
double r135815 = r135798 + r135793;
double r135816 = r135814 / r135815;
double r135817 = r135813 + r135816;
double r135818 = 771.3234287776531;
double r135819 = 3.0;
double r135820 = r135798 + r135819;
double r135821 = r135818 / r135820;
double r135822 = r135817 + r135821;
double r135823 = -176.6150291621406;
double r135824 = 4.0;
double r135825 = r135798 + r135824;
double r135826 = r135823 / r135825;
double r135827 = r135822 + r135826;
double r135828 = 12.507343278686905;
double r135829 = 5.0;
double r135830 = r135798 + r135829;
double r135831 = r135828 / r135830;
double r135832 = r135827 + r135831;
double r135833 = -0.13857109526572012;
double r135834 = 6.0;
double r135835 = r135798 + r135834;
double r135836 = r135833 / r135835;
double r135837 = r135832 + r135836;
double r135838 = 9.984369578019572e-06;
double r135839 = r135838 / r135800;
double r135840 = r135837 + r135839;
double r135841 = 1.5056327351493116e-07;
double r135842 = 8.0;
double r135843 = r135798 + r135842;
double r135844 = r135841 / r135843;
double r135845 = r135840 + r135844;
double r135846 = r135808 * r135845;
double r135847 = r135792 * r135846;
return r135847;
}



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