\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.9999999999998099298181841732002794742584 + \frac{676.5203681218850988443591631948947906494}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.139216722402807135949842631816864014}{\left(\left(1 - z\right) - 1\right) + 2}\right) + \frac{771.3234287776531346025876700878143310547}{\left(\left(1 - z\right) - 1\right) + 3}\right) + \frac{-176.6150291621405870046146446838974952698}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \frac{12.50734327868690520801919774385169148445}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.1385710952657201178173096423051902092993}{\left(\left(1 - z\right) - 1\right) + 6}\right) + \frac{9.984369578019571583242346146658263705831 \cdot 10^{-6}}{\left(\left(1 - z\right) - 1\right) + 7}\right) + \frac{1.505632735149311617592788074479481785772 \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.9999999999998099298181841732002794742584 + \frac{676.5203681218850988443591631948947906494}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.139216722402807135949842631816864014}{\left(\left(1 - z\right) - 1\right) + 2}\right) + \frac{771.3234287776531346025876700878143310547}{\left(\left(1 - z\right) - 1\right) + 3}\right) + \frac{-176.6150291621405870046146446838974952698}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \frac{12.50734327868690520801919774385169148445}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.1385710952657201178173096423051902092993}{\left(\left(1 - z\right) - 1\right) + 6}\right) + \frac{9.984369578019571583242346146658263705831 \cdot 10^{-6}}{\left(\left(1 - z\right) - 1\right) + 7}\right) + \frac{1.505632735149311617592788074479481785772 \cdot 10^{-7}}{\left(\left(1 - z\right) - 1\right) + 8}\right)\right)double f(double z) {
double r150912 = atan2(1.0, 0.0);
double r150913 = z;
double r150914 = r150912 * r150913;
double r150915 = sin(r150914);
double r150916 = r150912 / r150915;
double r150917 = 2.0;
double r150918 = r150912 * r150917;
double r150919 = sqrt(r150918);
double r150920 = 1.0;
double r150921 = r150920 - r150913;
double r150922 = r150921 - r150920;
double r150923 = 7.0;
double r150924 = r150922 + r150923;
double r150925 = 0.5;
double r150926 = r150924 + r150925;
double r150927 = r150922 + r150925;
double r150928 = pow(r150926, r150927);
double r150929 = r150919 * r150928;
double r150930 = -r150926;
double r150931 = exp(r150930);
double r150932 = r150929 * r150931;
double r150933 = 0.9999999999998099;
double r150934 = 676.5203681218851;
double r150935 = r150922 + r150920;
double r150936 = r150934 / r150935;
double r150937 = r150933 + r150936;
double r150938 = -1259.1392167224028;
double r150939 = r150922 + r150917;
double r150940 = r150938 / r150939;
double r150941 = r150937 + r150940;
double r150942 = 771.3234287776531;
double r150943 = 3.0;
double r150944 = r150922 + r150943;
double r150945 = r150942 / r150944;
double r150946 = r150941 + r150945;
double r150947 = -176.6150291621406;
double r150948 = 4.0;
double r150949 = r150922 + r150948;
double r150950 = r150947 / r150949;
double r150951 = r150946 + r150950;
double r150952 = 12.507343278686905;
double r150953 = 5.0;
double r150954 = r150922 + r150953;
double r150955 = r150952 / r150954;
double r150956 = r150951 + r150955;
double r150957 = -0.13857109526572012;
double r150958 = 6.0;
double r150959 = r150922 + r150958;
double r150960 = r150957 / r150959;
double r150961 = r150956 + r150960;
double r150962 = 9.984369578019572e-06;
double r150963 = r150962 / r150924;
double r150964 = r150961 + r150963;
double r150965 = 1.5056327351493116e-07;
double r150966 = 8.0;
double r150967 = r150922 + r150966;
double r150968 = r150965 / r150967;
double r150969 = r150964 + r150968;
double r150970 = r150932 * r150969;
double r150971 = r150916 * r150970;
return r150971;
}
double f(double z) {
double r150972 = atan2(1.0, 0.0);
double r150973 = z;
double r150974 = r150972 * r150973;
double r150975 = sin(r150974);
double r150976 = r150972 / r150975;
double r150977 = 2.0;
double r150978 = r150972 * r150977;
double r150979 = sqrt(r150978);
double r150980 = 1.0;
double r150981 = r150980 - r150973;
double r150982 = r150981 - r150980;
double r150983 = 7.0;
double r150984 = r150982 + r150983;
double r150985 = 0.5;
double r150986 = r150984 + r150985;
double r150987 = r150982 + r150985;
double r150988 = pow(r150986, r150987);
double r150989 = r150979 * r150988;
double r150990 = -r150986;
double r150991 = exp(r150990);
double r150992 = r150989 * r150991;
double r150993 = 0.9999999999998099;
double r150994 = 676.5203681218851;
double r150995 = r150982 + r150980;
double r150996 = r150994 / r150995;
double r150997 = r150993 + r150996;
double r150998 = -1259.1392167224028;
double r150999 = r150982 + r150977;
double r151000 = r150998 / r150999;
double r151001 = r150997 + r151000;
double r151002 = 771.3234287776531;
double r151003 = 3.0;
double r151004 = r150982 + r151003;
double r151005 = r151002 / r151004;
double r151006 = r151001 + r151005;
double r151007 = -176.6150291621406;
double r151008 = 4.0;
double r151009 = r150982 + r151008;
double r151010 = r151007 / r151009;
double r151011 = r151006 + r151010;
double r151012 = 12.507343278686905;
double r151013 = 5.0;
double r151014 = r150982 + r151013;
double r151015 = r151012 / r151014;
double r151016 = r151011 + r151015;
double r151017 = -0.13857109526572012;
double r151018 = 6.0;
double r151019 = r150982 + r151018;
double r151020 = r151017 / r151019;
double r151021 = r151016 + r151020;
double r151022 = 9.984369578019572e-06;
double r151023 = r151022 / r150984;
double r151024 = r151021 + r151023;
double r151025 = 1.5056327351493116e-07;
double r151026 = 8.0;
double r151027 = r150982 + r151026;
double r151028 = r151025 / r151027;
double r151029 = r151024 + r151028;
double r151030 = r150992 * r151029;
double r151031 = r150976 * r151030;
return r151031;
}



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