\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 r184011 = atan2(1.0, 0.0);
double r184012 = z;
double r184013 = r184011 * r184012;
double r184014 = sin(r184013);
double r184015 = r184011 / r184014;
double r184016 = 2.0;
double r184017 = r184011 * r184016;
double r184018 = sqrt(r184017);
double r184019 = 1.0;
double r184020 = r184019 - r184012;
double r184021 = r184020 - r184019;
double r184022 = 7.0;
double r184023 = r184021 + r184022;
double r184024 = 0.5;
double r184025 = r184023 + r184024;
double r184026 = r184021 + r184024;
double r184027 = pow(r184025, r184026);
double r184028 = r184018 * r184027;
double r184029 = -r184025;
double r184030 = exp(r184029);
double r184031 = r184028 * r184030;
double r184032 = 0.9999999999998099;
double r184033 = 676.5203681218851;
double r184034 = r184021 + r184019;
double r184035 = r184033 / r184034;
double r184036 = r184032 + r184035;
double r184037 = -1259.1392167224028;
double r184038 = r184021 + r184016;
double r184039 = r184037 / r184038;
double r184040 = r184036 + r184039;
double r184041 = 771.3234287776531;
double r184042 = 3.0;
double r184043 = r184021 + r184042;
double r184044 = r184041 / r184043;
double r184045 = r184040 + r184044;
double r184046 = -176.6150291621406;
double r184047 = 4.0;
double r184048 = r184021 + r184047;
double r184049 = r184046 / r184048;
double r184050 = r184045 + r184049;
double r184051 = 12.507343278686905;
double r184052 = 5.0;
double r184053 = r184021 + r184052;
double r184054 = r184051 / r184053;
double r184055 = r184050 + r184054;
double r184056 = -0.13857109526572012;
double r184057 = 6.0;
double r184058 = r184021 + r184057;
double r184059 = r184056 / r184058;
double r184060 = r184055 + r184059;
double r184061 = 9.984369578019572e-06;
double r184062 = r184061 / r184023;
double r184063 = r184060 + r184062;
double r184064 = 1.5056327351493116e-07;
double r184065 = 8.0;
double r184066 = r184021 + r184065;
double r184067 = r184064 / r184066;
double r184068 = r184063 + r184067;
double r184069 = r184031 * r184068;
double r184070 = r184015 * r184069;
return r184070;
}
double f(double z) {
double r184071 = atan2(1.0, 0.0);
double r184072 = z;
double r184073 = r184071 * r184072;
double r184074 = sin(r184073);
double r184075 = r184071 / r184074;
double r184076 = 2.0;
double r184077 = r184071 * r184076;
double r184078 = sqrt(r184077);
double r184079 = 1.0;
double r184080 = r184079 - r184072;
double r184081 = r184080 - r184079;
double r184082 = 7.0;
double r184083 = r184081 + r184082;
double r184084 = 0.5;
double r184085 = r184083 + r184084;
double r184086 = r184081 + r184084;
double r184087 = pow(r184085, r184086);
double r184088 = r184078 * r184087;
double r184089 = -r184085;
double r184090 = exp(r184089);
double r184091 = r184088 * r184090;
double r184092 = 0.9999999999998099;
double r184093 = 676.5203681218851;
double r184094 = r184081 + r184079;
double r184095 = r184093 / r184094;
double r184096 = r184092 + r184095;
double r184097 = -1259.1392167224028;
double r184098 = r184081 + r184076;
double r184099 = r184097 / r184098;
double r184100 = r184096 + r184099;
double r184101 = 771.3234287776531;
double r184102 = 3.0;
double r184103 = r184081 + r184102;
double r184104 = r184101 / r184103;
double r184105 = r184100 + r184104;
double r184106 = -176.6150291621406;
double r184107 = 4.0;
double r184108 = r184081 + r184107;
double r184109 = r184106 / r184108;
double r184110 = r184105 + r184109;
double r184111 = 12.507343278686905;
double r184112 = 5.0;
double r184113 = r184081 + r184112;
double r184114 = r184111 / r184113;
double r184115 = r184110 + r184114;
double r184116 = -0.13857109526572012;
double r184117 = 6.0;
double r184118 = r184081 + r184117;
double r184119 = r184116 / r184118;
double r184120 = r184115 + r184119;
double r184121 = 9.984369578019572e-06;
double r184122 = r184121 / r184083;
double r184123 = r184120 + r184122;
double r184124 = 1.5056327351493116e-07;
double r184125 = 8.0;
double r184126 = r184081 + r184125;
double r184127 = r184124 / r184126;
double r184128 = r184123 + r184127;
double r184129 = r184091 * r184128;
double r184130 = r184075 * r184129;
return r184130;
}



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