\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 r183930 = atan2(1.0, 0.0);
double r183931 = z;
double r183932 = r183930 * r183931;
double r183933 = sin(r183932);
double r183934 = r183930 / r183933;
double r183935 = 2.0;
double r183936 = r183930 * r183935;
double r183937 = sqrt(r183936);
double r183938 = 1.0;
double r183939 = r183938 - r183931;
double r183940 = r183939 - r183938;
double r183941 = 7.0;
double r183942 = r183940 + r183941;
double r183943 = 0.5;
double r183944 = r183942 + r183943;
double r183945 = r183940 + r183943;
double r183946 = pow(r183944, r183945);
double r183947 = r183937 * r183946;
double r183948 = -r183944;
double r183949 = exp(r183948);
double r183950 = r183947 * r183949;
double r183951 = 0.9999999999998099;
double r183952 = 676.5203681218851;
double r183953 = r183940 + r183938;
double r183954 = r183952 / r183953;
double r183955 = r183951 + r183954;
double r183956 = -1259.1392167224028;
double r183957 = r183940 + r183935;
double r183958 = r183956 / r183957;
double r183959 = r183955 + r183958;
double r183960 = 771.3234287776531;
double r183961 = 3.0;
double r183962 = r183940 + r183961;
double r183963 = r183960 / r183962;
double r183964 = r183959 + r183963;
double r183965 = -176.6150291621406;
double r183966 = 4.0;
double r183967 = r183940 + r183966;
double r183968 = r183965 / r183967;
double r183969 = r183964 + r183968;
double r183970 = 12.507343278686905;
double r183971 = 5.0;
double r183972 = r183940 + r183971;
double r183973 = r183970 / r183972;
double r183974 = r183969 + r183973;
double r183975 = -0.13857109526572012;
double r183976 = 6.0;
double r183977 = r183940 + r183976;
double r183978 = r183975 / r183977;
double r183979 = r183974 + r183978;
double r183980 = 9.984369578019572e-06;
double r183981 = r183980 / r183942;
double r183982 = r183979 + r183981;
double r183983 = 1.5056327351493116e-07;
double r183984 = 8.0;
double r183985 = r183940 + r183984;
double r183986 = r183983 / r183985;
double r183987 = r183982 + r183986;
double r183988 = r183950 * r183987;
double r183989 = r183934 * r183988;
return r183989;
}
double f(double z) {
double r183990 = atan2(1.0, 0.0);
double r183991 = z;
double r183992 = r183990 * r183991;
double r183993 = sin(r183992);
double r183994 = r183990 / r183993;
double r183995 = 2.0;
double r183996 = r183990 * r183995;
double r183997 = sqrt(r183996);
double r183998 = 1.0;
double r183999 = r183998 - r183991;
double r184000 = r183999 - r183998;
double r184001 = 7.0;
double r184002 = r184000 + r184001;
double r184003 = 0.5;
double r184004 = r184002 + r184003;
double r184005 = r184000 + r184003;
double r184006 = pow(r184004, r184005);
double r184007 = r183997 * r184006;
double r184008 = -r184004;
double r184009 = exp(r184008);
double r184010 = r184007 * r184009;
double r184011 = 0.9999999999998099;
double r184012 = 676.5203681218851;
double r184013 = r184000 + r183998;
double r184014 = r184012 / r184013;
double r184015 = r184011 + r184014;
double r184016 = -1259.1392167224028;
double r184017 = r184000 + r183995;
double r184018 = r184016 / r184017;
double r184019 = r184015 + r184018;
double r184020 = 771.3234287776531;
double r184021 = 3.0;
double r184022 = r184000 + r184021;
double r184023 = r184020 / r184022;
double r184024 = r184019 + r184023;
double r184025 = -176.6150291621406;
double r184026 = 4.0;
double r184027 = r184000 + r184026;
double r184028 = r184025 / r184027;
double r184029 = r184024 + r184028;
double r184030 = 12.507343278686905;
double r184031 = 5.0;
double r184032 = r184000 + r184031;
double r184033 = r184030 / r184032;
double r184034 = r184029 + r184033;
double r184035 = -0.13857109526572012;
double r184036 = 6.0;
double r184037 = r184000 + r184036;
double r184038 = r184035 / r184037;
double r184039 = r184034 + r184038;
double r184040 = 9.984369578019572e-06;
double r184041 = r184040 / r184002;
double r184042 = r184039 + r184041;
double r184043 = 1.5056327351493116e-07;
double r184044 = 8.0;
double r184045 = r184000 + r184044;
double r184046 = r184043 / r184045;
double r184047 = r184042 + r184046;
double r184048 = r184010 * r184047;
double r184049 = r183994 * r184048;
return r184049;
}



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