\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 r116993 = atan2(1.0, 0.0);
double r116994 = z;
double r116995 = r116993 * r116994;
double r116996 = sin(r116995);
double r116997 = r116993 / r116996;
double r116998 = 2.0;
double r116999 = r116993 * r116998;
double r117000 = sqrt(r116999);
double r117001 = 1.0;
double r117002 = r117001 - r116994;
double r117003 = r117002 - r117001;
double r117004 = 7.0;
double r117005 = r117003 + r117004;
double r117006 = 0.5;
double r117007 = r117005 + r117006;
double r117008 = r117003 + r117006;
double r117009 = pow(r117007, r117008);
double r117010 = r117000 * r117009;
double r117011 = -r117007;
double r117012 = exp(r117011);
double r117013 = r117010 * r117012;
double r117014 = 0.9999999999998099;
double r117015 = 676.5203681218851;
double r117016 = r117003 + r117001;
double r117017 = r117015 / r117016;
double r117018 = r117014 + r117017;
double r117019 = -1259.1392167224028;
double r117020 = r117003 + r116998;
double r117021 = r117019 / r117020;
double r117022 = r117018 + r117021;
double r117023 = 771.3234287776531;
double r117024 = 3.0;
double r117025 = r117003 + r117024;
double r117026 = r117023 / r117025;
double r117027 = r117022 + r117026;
double r117028 = -176.6150291621406;
double r117029 = 4.0;
double r117030 = r117003 + r117029;
double r117031 = r117028 / r117030;
double r117032 = r117027 + r117031;
double r117033 = 12.507343278686905;
double r117034 = 5.0;
double r117035 = r117003 + r117034;
double r117036 = r117033 / r117035;
double r117037 = r117032 + r117036;
double r117038 = -0.13857109526572012;
double r117039 = 6.0;
double r117040 = r117003 + r117039;
double r117041 = r117038 / r117040;
double r117042 = r117037 + r117041;
double r117043 = 9.984369578019572e-06;
double r117044 = r117043 / r117005;
double r117045 = r117042 + r117044;
double r117046 = 1.5056327351493116e-07;
double r117047 = 8.0;
double r117048 = r117003 + r117047;
double r117049 = r117046 / r117048;
double r117050 = r117045 + r117049;
double r117051 = r117013 * r117050;
double r117052 = r116997 * r117051;
return r117052;
}
double f(double z) {
double r117053 = atan2(1.0, 0.0);
double r117054 = z;
double r117055 = r117053 * r117054;
double r117056 = sin(r117055);
double r117057 = r117053 / r117056;
double r117058 = 2.0;
double r117059 = r117053 * r117058;
double r117060 = sqrt(r117059);
double r117061 = 1.0;
double r117062 = r117061 - r117054;
double r117063 = r117062 - r117061;
double r117064 = 7.0;
double r117065 = r117063 + r117064;
double r117066 = 0.5;
double r117067 = r117065 + r117066;
double r117068 = r117063 + r117066;
double r117069 = pow(r117067, r117068);
double r117070 = r117060 * r117069;
double r117071 = -r117067;
double r117072 = exp(r117071);
double r117073 = r117070 * r117072;
double r117074 = 0.9999999999998099;
double r117075 = 676.5203681218851;
double r117076 = r117063 + r117061;
double r117077 = r117075 / r117076;
double r117078 = r117074 + r117077;
double r117079 = -1259.1392167224028;
double r117080 = r117063 + r117058;
double r117081 = r117079 / r117080;
double r117082 = r117078 + r117081;
double r117083 = 771.3234287776531;
double r117084 = 3.0;
double r117085 = r117063 + r117084;
double r117086 = r117083 / r117085;
double r117087 = r117082 + r117086;
double r117088 = -176.6150291621406;
double r117089 = 4.0;
double r117090 = r117063 + r117089;
double r117091 = r117088 / r117090;
double r117092 = r117087 + r117091;
double r117093 = 12.507343278686905;
double r117094 = 5.0;
double r117095 = r117063 + r117094;
double r117096 = r117093 / r117095;
double r117097 = r117092 + r117096;
double r117098 = -0.13857109526572012;
double r117099 = 6.0;
double r117100 = r117063 + r117099;
double r117101 = r117098 / r117100;
double r117102 = r117097 + r117101;
double r117103 = 9.984369578019572e-06;
double r117104 = r117103 / r117065;
double r117105 = r117102 + r117104;
double r117106 = 1.5056327351493116e-07;
double r117107 = 8.0;
double r117108 = r117063 + r117107;
double r117109 = r117106 / r117108;
double r117110 = r117105 + r117109;
double r117111 = r117073 * r117110;
double r117112 = r117057 * r117111;
return r117112;
}



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