\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 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;
}
double f(double z) {
double r107921 = atan2(1.0, 0.0);
double r107922 = z;
double r107923 = r107921 * r107922;
double r107924 = sin(r107923);
double r107925 = r107921 / r107924;
double r107926 = 2.0;
double r107927 = r107921 * r107926;
double r107928 = sqrt(r107927);
double r107929 = 1.0;
double r107930 = r107929 - r107922;
double r107931 = r107930 - r107929;
double r107932 = 7.0;
double r107933 = r107931 + r107932;
double r107934 = 0.5;
double r107935 = r107933 + r107934;
double r107936 = r107931 + r107934;
double r107937 = pow(r107935, r107936);
double r107938 = r107928 * r107937;
double r107939 = -r107935;
double r107940 = exp(r107939);
double r107941 = r107938 * r107940;
double r107942 = 0.9999999999998099;
double r107943 = 676.5203681218851;
double r107944 = r107931 + r107929;
double r107945 = r107943 / r107944;
double r107946 = r107942 + r107945;
double r107947 = -1259.1392167224028;
double r107948 = r107931 + r107926;
double r107949 = r107947 / r107948;
double r107950 = r107946 + r107949;
double r107951 = 771.3234287776531;
double r107952 = 3.0;
double r107953 = r107931 + r107952;
double r107954 = r107951 / r107953;
double r107955 = r107950 + r107954;
double r107956 = -176.6150291621406;
double r107957 = 4.0;
double r107958 = r107931 + r107957;
double r107959 = r107956 / r107958;
double r107960 = r107955 + r107959;
double r107961 = 12.507343278686905;
double r107962 = 5.0;
double r107963 = r107931 + r107962;
double r107964 = r107961 / r107963;
double r107965 = r107960 + r107964;
double r107966 = -0.13857109526572012;
double r107967 = 6.0;
double r107968 = r107931 + r107967;
double r107969 = r107966 / r107968;
double r107970 = r107965 + r107969;
double r107971 = 9.984369578019572e-06;
double r107972 = r107971 / r107933;
double r107973 = r107970 + r107972;
double r107974 = 1.5056327351493116e-07;
double r107975 = 8.0;
double r107976 = r107931 + r107975;
double r107977 = r107974 / r107976;
double r107978 = r107973 + r107977;
double r107979 = r107941 * r107978;
double r107980 = r107925 * r107979;
return r107980;
}



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