\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 r146902 = atan2(1.0, 0.0);
double r146903 = z;
double r146904 = r146902 * r146903;
double r146905 = sin(r146904);
double r146906 = r146902 / r146905;
double r146907 = 2.0;
double r146908 = r146902 * r146907;
double r146909 = sqrt(r146908);
double r146910 = 1.0;
double r146911 = r146910 - r146903;
double r146912 = r146911 - r146910;
double r146913 = 7.0;
double r146914 = r146912 + r146913;
double r146915 = 0.5;
double r146916 = r146914 + r146915;
double r146917 = r146912 + r146915;
double r146918 = pow(r146916, r146917);
double r146919 = r146909 * r146918;
double r146920 = -r146916;
double r146921 = exp(r146920);
double r146922 = r146919 * r146921;
double r146923 = 0.9999999999998099;
double r146924 = 676.5203681218851;
double r146925 = r146912 + r146910;
double r146926 = r146924 / r146925;
double r146927 = r146923 + r146926;
double r146928 = -1259.1392167224028;
double r146929 = r146912 + r146907;
double r146930 = r146928 / r146929;
double r146931 = r146927 + r146930;
double r146932 = 771.3234287776531;
double r146933 = 3.0;
double r146934 = r146912 + r146933;
double r146935 = r146932 / r146934;
double r146936 = r146931 + r146935;
double r146937 = -176.6150291621406;
double r146938 = 4.0;
double r146939 = r146912 + r146938;
double r146940 = r146937 / r146939;
double r146941 = r146936 + r146940;
double r146942 = 12.507343278686905;
double r146943 = 5.0;
double r146944 = r146912 + r146943;
double r146945 = r146942 / r146944;
double r146946 = r146941 + r146945;
double r146947 = -0.13857109526572012;
double r146948 = 6.0;
double r146949 = r146912 + r146948;
double r146950 = r146947 / r146949;
double r146951 = r146946 + r146950;
double r146952 = 9.984369578019572e-06;
double r146953 = r146952 / r146914;
double r146954 = r146951 + r146953;
double r146955 = 1.5056327351493116e-07;
double r146956 = 8.0;
double r146957 = r146912 + r146956;
double r146958 = r146955 / r146957;
double r146959 = r146954 + r146958;
double r146960 = r146922 * r146959;
double r146961 = r146906 * r146960;
return r146961;
}
double f(double z) {
double r146962 = atan2(1.0, 0.0);
double r146963 = z;
double r146964 = r146962 * r146963;
double r146965 = sin(r146964);
double r146966 = r146962 / r146965;
double r146967 = 2.0;
double r146968 = r146962 * r146967;
double r146969 = sqrt(r146968);
double r146970 = 1.0;
double r146971 = r146970 - r146963;
double r146972 = r146971 - r146970;
double r146973 = 7.0;
double r146974 = r146972 + r146973;
double r146975 = 0.5;
double r146976 = r146974 + r146975;
double r146977 = r146972 + r146975;
double r146978 = pow(r146976, r146977);
double r146979 = r146969 * r146978;
double r146980 = -r146976;
double r146981 = exp(r146980);
double r146982 = r146979 * r146981;
double r146983 = 0.9999999999998099;
double r146984 = 676.5203681218851;
double r146985 = r146972 + r146970;
double r146986 = r146984 / r146985;
double r146987 = r146983 + r146986;
double r146988 = -1259.1392167224028;
double r146989 = r146972 + r146967;
double r146990 = r146988 / r146989;
double r146991 = r146987 + r146990;
double r146992 = 771.3234287776531;
double r146993 = 3.0;
double r146994 = r146972 + r146993;
double r146995 = r146992 / r146994;
double r146996 = r146991 + r146995;
double r146997 = -176.6150291621406;
double r146998 = 4.0;
double r146999 = r146972 + r146998;
double r147000 = r146997 / r146999;
double r147001 = r146996 + r147000;
double r147002 = 12.507343278686905;
double r147003 = 5.0;
double r147004 = r146972 + r147003;
double r147005 = r147002 / r147004;
double r147006 = r147001 + r147005;
double r147007 = -0.13857109526572012;
double r147008 = 6.0;
double r147009 = r146972 + r147008;
double r147010 = r147007 / r147009;
double r147011 = r147006 + r147010;
double r147012 = 9.984369578019572e-06;
double r147013 = r147012 / r146974;
double r147014 = r147011 + r147013;
double r147015 = 1.5056327351493116e-07;
double r147016 = 8.0;
double r147017 = r146972 + r147016;
double r147018 = r147015 / r147017;
double r147019 = r147014 + r147018;
double r147020 = r146982 * r147019;
double r147021 = r146966 * r147020;
return r147021;
}



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