\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 r140832 = atan2(1.0, 0.0);
double r140833 = z;
double r140834 = r140832 * r140833;
double r140835 = sin(r140834);
double r140836 = r140832 / r140835;
double r140837 = 2.0;
double r140838 = r140832 * r140837;
double r140839 = sqrt(r140838);
double r140840 = 1.0;
double r140841 = r140840 - r140833;
double r140842 = r140841 - r140840;
double r140843 = 7.0;
double r140844 = r140842 + r140843;
double r140845 = 0.5;
double r140846 = r140844 + r140845;
double r140847 = r140842 + r140845;
double r140848 = pow(r140846, r140847);
double r140849 = r140839 * r140848;
double r140850 = -r140846;
double r140851 = exp(r140850);
double r140852 = r140849 * r140851;
double r140853 = 0.9999999999998099;
double r140854 = 676.5203681218851;
double r140855 = r140842 + r140840;
double r140856 = r140854 / r140855;
double r140857 = r140853 + r140856;
double r140858 = -1259.1392167224028;
double r140859 = r140842 + r140837;
double r140860 = r140858 / r140859;
double r140861 = r140857 + r140860;
double r140862 = 771.3234287776531;
double r140863 = 3.0;
double r140864 = r140842 + r140863;
double r140865 = r140862 / r140864;
double r140866 = r140861 + r140865;
double r140867 = -176.6150291621406;
double r140868 = 4.0;
double r140869 = r140842 + r140868;
double r140870 = r140867 / r140869;
double r140871 = r140866 + r140870;
double r140872 = 12.507343278686905;
double r140873 = 5.0;
double r140874 = r140842 + r140873;
double r140875 = r140872 / r140874;
double r140876 = r140871 + r140875;
double r140877 = -0.13857109526572012;
double r140878 = 6.0;
double r140879 = r140842 + r140878;
double r140880 = r140877 / r140879;
double r140881 = r140876 + r140880;
double r140882 = 9.984369578019572e-06;
double r140883 = r140882 / r140844;
double r140884 = r140881 + r140883;
double r140885 = 1.5056327351493116e-07;
double r140886 = 8.0;
double r140887 = r140842 + r140886;
double r140888 = r140885 / r140887;
double r140889 = r140884 + r140888;
double r140890 = r140852 * r140889;
double r140891 = r140836 * r140890;
return r140891;
}
double f(double z) {
double r140892 = atan2(1.0, 0.0);
double r140893 = z;
double r140894 = r140892 * r140893;
double r140895 = sin(r140894);
double r140896 = r140892 / r140895;
double r140897 = 2.0;
double r140898 = r140892 * r140897;
double r140899 = sqrt(r140898);
double r140900 = 1.0;
double r140901 = r140900 - r140893;
double r140902 = r140901 - r140900;
double r140903 = 7.0;
double r140904 = r140902 + r140903;
double r140905 = 0.5;
double r140906 = r140904 + r140905;
double r140907 = r140902 + r140905;
double r140908 = pow(r140906, r140907);
double r140909 = r140899 * r140908;
double r140910 = -r140906;
double r140911 = exp(r140910);
double r140912 = r140909 * r140911;
double r140913 = 0.9999999999998099;
double r140914 = 676.5203681218851;
double r140915 = r140902 + r140900;
double r140916 = r140914 / r140915;
double r140917 = r140913 + r140916;
double r140918 = -1259.1392167224028;
double r140919 = r140902 + r140897;
double r140920 = r140918 / r140919;
double r140921 = r140917 + r140920;
double r140922 = 771.3234287776531;
double r140923 = 3.0;
double r140924 = r140902 + r140923;
double r140925 = r140922 / r140924;
double r140926 = r140921 + r140925;
double r140927 = -176.6150291621406;
double r140928 = 4.0;
double r140929 = r140902 + r140928;
double r140930 = r140927 / r140929;
double r140931 = r140926 + r140930;
double r140932 = 12.507343278686905;
double r140933 = 5.0;
double r140934 = r140902 + r140933;
double r140935 = r140932 / r140934;
double r140936 = r140931 + r140935;
double r140937 = -0.13857109526572012;
double r140938 = 6.0;
double r140939 = r140902 + r140938;
double r140940 = r140937 / r140939;
double r140941 = r140936 + r140940;
double r140942 = 9.984369578019572e-06;
double r140943 = r140942 / r140904;
double r140944 = r140941 + r140943;
double r140945 = 1.5056327351493116e-07;
double r140946 = 8.0;
double r140947 = r140902 + r140946;
double r140948 = r140945 / r140947;
double r140949 = r140944 + r140948;
double r140950 = r140912 * r140949;
double r140951 = r140896 * r140950;
return r140951;
}



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