\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 r107801 = atan2(1.0, 0.0);
double r107802 = z;
double r107803 = r107801 * r107802;
double r107804 = sin(r107803);
double r107805 = r107801 / r107804;
double r107806 = 2.0;
double r107807 = r107801 * r107806;
double r107808 = sqrt(r107807);
double r107809 = 1.0;
double r107810 = r107809 - r107802;
double r107811 = r107810 - r107809;
double r107812 = 7.0;
double r107813 = r107811 + r107812;
double r107814 = 0.5;
double r107815 = r107813 + r107814;
double r107816 = r107811 + r107814;
double r107817 = pow(r107815, r107816);
double r107818 = r107808 * r107817;
double r107819 = -r107815;
double r107820 = exp(r107819);
double r107821 = r107818 * r107820;
double r107822 = 0.9999999999998099;
double r107823 = 676.5203681218851;
double r107824 = r107811 + r107809;
double r107825 = r107823 / r107824;
double r107826 = r107822 + r107825;
double r107827 = -1259.1392167224028;
double r107828 = r107811 + r107806;
double r107829 = r107827 / r107828;
double r107830 = r107826 + r107829;
double r107831 = 771.3234287776531;
double r107832 = 3.0;
double r107833 = r107811 + r107832;
double r107834 = r107831 / r107833;
double r107835 = r107830 + r107834;
double r107836 = -176.6150291621406;
double r107837 = 4.0;
double r107838 = r107811 + r107837;
double r107839 = r107836 / r107838;
double r107840 = r107835 + r107839;
double r107841 = 12.507343278686905;
double r107842 = 5.0;
double r107843 = r107811 + r107842;
double r107844 = r107841 / r107843;
double r107845 = r107840 + r107844;
double r107846 = -0.13857109526572012;
double r107847 = 6.0;
double r107848 = r107811 + r107847;
double r107849 = r107846 / r107848;
double r107850 = r107845 + r107849;
double r107851 = 9.984369578019572e-06;
double r107852 = r107851 / r107813;
double r107853 = r107850 + r107852;
double r107854 = 1.5056327351493116e-07;
double r107855 = 8.0;
double r107856 = r107811 + r107855;
double r107857 = r107854 / r107856;
double r107858 = r107853 + r107857;
double r107859 = r107821 * r107858;
double r107860 = r107805 * r107859;
return r107860;
}
double f(double z) {
double r107861 = atan2(1.0, 0.0);
double r107862 = z;
double r107863 = r107861 * r107862;
double r107864 = sin(r107863);
double r107865 = r107861 / r107864;
double r107866 = 2.0;
double r107867 = r107861 * r107866;
double r107868 = sqrt(r107867);
double r107869 = 1.0;
double r107870 = r107869 - r107862;
double r107871 = r107870 - r107869;
double r107872 = 7.0;
double r107873 = r107871 + r107872;
double r107874 = 0.5;
double r107875 = r107873 + r107874;
double r107876 = r107871 + r107874;
double r107877 = pow(r107875, r107876);
double r107878 = r107868 * r107877;
double r107879 = -r107875;
double r107880 = exp(r107879);
double r107881 = r107878 * r107880;
double r107882 = 0.9999999999998099;
double r107883 = 676.5203681218851;
double r107884 = r107871 + r107869;
double r107885 = r107883 / r107884;
double r107886 = r107882 + r107885;
double r107887 = -1259.1392167224028;
double r107888 = r107871 + r107866;
double r107889 = r107887 / r107888;
double r107890 = r107886 + r107889;
double r107891 = 771.3234287776531;
double r107892 = 3.0;
double r107893 = r107871 + r107892;
double r107894 = r107891 / r107893;
double r107895 = r107890 + r107894;
double r107896 = -176.6150291621406;
double r107897 = 4.0;
double r107898 = r107871 + r107897;
double r107899 = r107896 / r107898;
double r107900 = r107895 + r107899;
double r107901 = 12.507343278686905;
double r107902 = 5.0;
double r107903 = r107871 + r107902;
double r107904 = r107901 / r107903;
double r107905 = r107900 + r107904;
double r107906 = -0.13857109526572012;
double r107907 = 6.0;
double r107908 = r107871 + r107907;
double r107909 = r107906 / r107908;
double r107910 = r107905 + r107909;
double r107911 = 9.984369578019572e-06;
double r107912 = r107911 / r107873;
double r107913 = r107910 + r107912;
double r107914 = 1.5056327351493116e-07;
double r107915 = 8.0;
double r107916 = r107871 + r107915;
double r107917 = r107914 / r107916;
double r107918 = r107913 + r107917;
double r107919 = r107881 * r107918;
double r107920 = r107865 * r107919;
return r107920;
}



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