\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 r168828 = atan2(1.0, 0.0);
double r168829 = z;
double r168830 = r168828 * r168829;
double r168831 = sin(r168830);
double r168832 = r168828 / r168831;
double r168833 = 2.0;
double r168834 = r168828 * r168833;
double r168835 = sqrt(r168834);
double r168836 = 1.0;
double r168837 = r168836 - r168829;
double r168838 = r168837 - r168836;
double r168839 = 7.0;
double r168840 = r168838 + r168839;
double r168841 = 0.5;
double r168842 = r168840 + r168841;
double r168843 = r168838 + r168841;
double r168844 = pow(r168842, r168843);
double r168845 = r168835 * r168844;
double r168846 = -r168842;
double r168847 = exp(r168846);
double r168848 = r168845 * r168847;
double r168849 = 0.9999999999998099;
double r168850 = 676.5203681218851;
double r168851 = r168838 + r168836;
double r168852 = r168850 / r168851;
double r168853 = r168849 + r168852;
double r168854 = -1259.1392167224028;
double r168855 = r168838 + r168833;
double r168856 = r168854 / r168855;
double r168857 = r168853 + r168856;
double r168858 = 771.3234287776531;
double r168859 = 3.0;
double r168860 = r168838 + r168859;
double r168861 = r168858 / r168860;
double r168862 = r168857 + r168861;
double r168863 = -176.6150291621406;
double r168864 = 4.0;
double r168865 = r168838 + r168864;
double r168866 = r168863 / r168865;
double r168867 = r168862 + r168866;
double r168868 = 12.507343278686905;
double r168869 = 5.0;
double r168870 = r168838 + r168869;
double r168871 = r168868 / r168870;
double r168872 = r168867 + r168871;
double r168873 = -0.13857109526572012;
double r168874 = 6.0;
double r168875 = r168838 + r168874;
double r168876 = r168873 / r168875;
double r168877 = r168872 + r168876;
double r168878 = 9.984369578019572e-06;
double r168879 = r168878 / r168840;
double r168880 = r168877 + r168879;
double r168881 = 1.5056327351493116e-07;
double r168882 = 8.0;
double r168883 = r168838 + r168882;
double r168884 = r168881 / r168883;
double r168885 = r168880 + r168884;
double r168886 = r168848 * r168885;
double r168887 = r168832 * r168886;
return r168887;
}
double f(double z) {
double r168888 = atan2(1.0, 0.0);
double r168889 = z;
double r168890 = r168888 * r168889;
double r168891 = sin(r168890);
double r168892 = r168888 / r168891;
double r168893 = 2.0;
double r168894 = r168888 * r168893;
double r168895 = sqrt(r168894);
double r168896 = 1.0;
double r168897 = r168896 - r168889;
double r168898 = r168897 - r168896;
double r168899 = 7.0;
double r168900 = r168898 + r168899;
double r168901 = 0.5;
double r168902 = r168900 + r168901;
double r168903 = r168898 + r168901;
double r168904 = pow(r168902, r168903);
double r168905 = r168895 * r168904;
double r168906 = -r168902;
double r168907 = exp(r168906);
double r168908 = r168905 * r168907;
double r168909 = 0.9999999999998099;
double r168910 = 676.5203681218851;
double r168911 = r168898 + r168896;
double r168912 = r168910 / r168911;
double r168913 = r168909 + r168912;
double r168914 = -1259.1392167224028;
double r168915 = r168898 + r168893;
double r168916 = r168914 / r168915;
double r168917 = r168913 + r168916;
double r168918 = 771.3234287776531;
double r168919 = 3.0;
double r168920 = r168898 + r168919;
double r168921 = r168918 / r168920;
double r168922 = r168917 + r168921;
double r168923 = -176.6150291621406;
double r168924 = 4.0;
double r168925 = r168898 + r168924;
double r168926 = r168923 / r168925;
double r168927 = r168922 + r168926;
double r168928 = 12.507343278686905;
double r168929 = 5.0;
double r168930 = r168898 + r168929;
double r168931 = r168928 / r168930;
double r168932 = r168927 + r168931;
double r168933 = -0.13857109526572012;
double r168934 = 6.0;
double r168935 = r168898 + r168934;
double r168936 = r168933 / r168935;
double r168937 = r168932 + r168936;
double r168938 = 9.984369578019572e-06;
double r168939 = r168938 / r168900;
double r168940 = r168937 + r168939;
double r168941 = 1.5056327351493116e-07;
double r168942 = 8.0;
double r168943 = r168898 + r168942;
double r168944 = r168941 / r168943;
double r168945 = r168940 + r168944;
double r168946 = r168908 * r168945;
double r168947 = r168892 * r168946;
return r168947;
}



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