\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 r176971 = atan2(1.0, 0.0);
double r176972 = z;
double r176973 = r176971 * r176972;
double r176974 = sin(r176973);
double r176975 = r176971 / r176974;
double r176976 = 2.0;
double r176977 = r176971 * r176976;
double r176978 = sqrt(r176977);
double r176979 = 1.0;
double r176980 = r176979 - r176972;
double r176981 = r176980 - r176979;
double r176982 = 7.0;
double r176983 = r176981 + r176982;
double r176984 = 0.5;
double r176985 = r176983 + r176984;
double r176986 = r176981 + r176984;
double r176987 = pow(r176985, r176986);
double r176988 = r176978 * r176987;
double r176989 = -r176985;
double r176990 = exp(r176989);
double r176991 = r176988 * r176990;
double r176992 = 0.9999999999998099;
double r176993 = 676.5203681218851;
double r176994 = r176981 + r176979;
double r176995 = r176993 / r176994;
double r176996 = r176992 + r176995;
double r176997 = -1259.1392167224028;
double r176998 = r176981 + r176976;
double r176999 = r176997 / r176998;
double r177000 = r176996 + r176999;
double r177001 = 771.3234287776531;
double r177002 = 3.0;
double r177003 = r176981 + r177002;
double r177004 = r177001 / r177003;
double r177005 = r177000 + r177004;
double r177006 = -176.6150291621406;
double r177007 = 4.0;
double r177008 = r176981 + r177007;
double r177009 = r177006 / r177008;
double r177010 = r177005 + r177009;
double r177011 = 12.507343278686905;
double r177012 = 5.0;
double r177013 = r176981 + r177012;
double r177014 = r177011 / r177013;
double r177015 = r177010 + r177014;
double r177016 = -0.13857109526572012;
double r177017 = 6.0;
double r177018 = r176981 + r177017;
double r177019 = r177016 / r177018;
double r177020 = r177015 + r177019;
double r177021 = 9.984369578019572e-06;
double r177022 = r177021 / r176983;
double r177023 = r177020 + r177022;
double r177024 = 1.5056327351493116e-07;
double r177025 = 8.0;
double r177026 = r176981 + r177025;
double r177027 = r177024 / r177026;
double r177028 = r177023 + r177027;
double r177029 = r176991 * r177028;
double r177030 = r176975 * r177029;
return r177030;
}
double f(double z) {
double r177031 = atan2(1.0, 0.0);
double r177032 = z;
double r177033 = r177031 * r177032;
double r177034 = sin(r177033);
double r177035 = r177031 / r177034;
double r177036 = 2.0;
double r177037 = r177031 * r177036;
double r177038 = sqrt(r177037);
double r177039 = 1.0;
double r177040 = r177039 - r177032;
double r177041 = r177040 - r177039;
double r177042 = 7.0;
double r177043 = r177041 + r177042;
double r177044 = 0.5;
double r177045 = r177043 + r177044;
double r177046 = r177041 + r177044;
double r177047 = pow(r177045, r177046);
double r177048 = r177038 * r177047;
double r177049 = -r177045;
double r177050 = exp(r177049);
double r177051 = r177048 * r177050;
double r177052 = 0.9999999999998099;
double r177053 = 676.5203681218851;
double r177054 = r177041 + r177039;
double r177055 = r177053 / r177054;
double r177056 = r177052 + r177055;
double r177057 = -1259.1392167224028;
double r177058 = r177041 + r177036;
double r177059 = r177057 / r177058;
double r177060 = r177056 + r177059;
double r177061 = 771.3234287776531;
double r177062 = 3.0;
double r177063 = r177041 + r177062;
double r177064 = r177061 / r177063;
double r177065 = r177060 + r177064;
double r177066 = -176.6150291621406;
double r177067 = 4.0;
double r177068 = r177041 + r177067;
double r177069 = r177066 / r177068;
double r177070 = r177065 + r177069;
double r177071 = 12.507343278686905;
double r177072 = 5.0;
double r177073 = r177041 + r177072;
double r177074 = r177071 / r177073;
double r177075 = r177070 + r177074;
double r177076 = -0.13857109526572012;
double r177077 = 6.0;
double r177078 = r177041 + r177077;
double r177079 = r177076 / r177078;
double r177080 = r177075 + r177079;
double r177081 = 9.984369578019572e-06;
double r177082 = r177081 / r177043;
double r177083 = r177080 + r177082;
double r177084 = 1.5056327351493116e-07;
double r177085 = 8.0;
double r177086 = r177041 + r177085;
double r177087 = r177084 / r177086;
double r177088 = r177083 + r177087;
double r177089 = r177051 * r177088;
double r177090 = r177035 * r177089;
return r177090;
}



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