\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 r107204 = atan2(1.0, 0.0);
double r107205 = z;
double r107206 = r107204 * r107205;
double r107207 = sin(r107206);
double r107208 = r107204 / r107207;
double r107209 = 2.0;
double r107210 = r107204 * r107209;
double r107211 = sqrt(r107210);
double r107212 = 1.0;
double r107213 = r107212 - r107205;
double r107214 = r107213 - r107212;
double r107215 = 7.0;
double r107216 = r107214 + r107215;
double r107217 = 0.5;
double r107218 = r107216 + r107217;
double r107219 = r107214 + r107217;
double r107220 = pow(r107218, r107219);
double r107221 = r107211 * r107220;
double r107222 = -r107218;
double r107223 = exp(r107222);
double r107224 = r107221 * r107223;
double r107225 = 0.9999999999998099;
double r107226 = 676.5203681218851;
double r107227 = r107214 + r107212;
double r107228 = r107226 / r107227;
double r107229 = r107225 + r107228;
double r107230 = -1259.1392167224028;
double r107231 = r107214 + r107209;
double r107232 = r107230 / r107231;
double r107233 = r107229 + r107232;
double r107234 = 771.3234287776531;
double r107235 = 3.0;
double r107236 = r107214 + r107235;
double r107237 = r107234 / r107236;
double r107238 = r107233 + r107237;
double r107239 = -176.6150291621406;
double r107240 = 4.0;
double r107241 = r107214 + r107240;
double r107242 = r107239 / r107241;
double r107243 = r107238 + r107242;
double r107244 = 12.507343278686905;
double r107245 = 5.0;
double r107246 = r107214 + r107245;
double r107247 = r107244 / r107246;
double r107248 = r107243 + r107247;
double r107249 = -0.13857109526572012;
double r107250 = 6.0;
double r107251 = r107214 + r107250;
double r107252 = r107249 / r107251;
double r107253 = r107248 + r107252;
double r107254 = 9.984369578019572e-06;
double r107255 = r107254 / r107216;
double r107256 = r107253 + r107255;
double r107257 = 1.5056327351493116e-07;
double r107258 = 8.0;
double r107259 = r107214 + r107258;
double r107260 = r107257 / r107259;
double r107261 = r107256 + r107260;
double r107262 = r107224 * r107261;
double r107263 = r107208 * r107262;
return r107263;
}
double f(double z) {
double r107264 = atan2(1.0, 0.0);
double r107265 = z;
double r107266 = r107264 * r107265;
double r107267 = sin(r107266);
double r107268 = r107264 / r107267;
double r107269 = 2.0;
double r107270 = r107264 * r107269;
double r107271 = sqrt(r107270);
double r107272 = 1.0;
double r107273 = r107272 - r107265;
double r107274 = r107273 - r107272;
double r107275 = 7.0;
double r107276 = r107274 + r107275;
double r107277 = 0.5;
double r107278 = r107276 + r107277;
double r107279 = r107274 + r107277;
double r107280 = pow(r107278, r107279);
double r107281 = r107271 * r107280;
double r107282 = -r107278;
double r107283 = exp(r107282);
double r107284 = r107281 * r107283;
double r107285 = 0.9999999999998099;
double r107286 = 676.5203681218851;
double r107287 = r107274 + r107272;
double r107288 = r107286 / r107287;
double r107289 = r107285 + r107288;
double r107290 = -1259.1392167224028;
double r107291 = r107274 + r107269;
double r107292 = r107290 / r107291;
double r107293 = r107289 + r107292;
double r107294 = 771.3234287776531;
double r107295 = 3.0;
double r107296 = r107274 + r107295;
double r107297 = r107294 / r107296;
double r107298 = r107293 + r107297;
double r107299 = -176.6150291621406;
double r107300 = 4.0;
double r107301 = r107274 + r107300;
double r107302 = r107299 / r107301;
double r107303 = r107298 + r107302;
double r107304 = 12.507343278686905;
double r107305 = 5.0;
double r107306 = r107274 + r107305;
double r107307 = r107304 / r107306;
double r107308 = r107303 + r107307;
double r107309 = -0.13857109526572012;
double r107310 = 6.0;
double r107311 = r107274 + r107310;
double r107312 = r107309 / r107311;
double r107313 = r107308 + r107312;
double r107314 = 9.984369578019572e-06;
double r107315 = r107314 / r107276;
double r107316 = r107313 + r107315;
double r107317 = 1.5056327351493116e-07;
double r107318 = 8.0;
double r107319 = r107274 + r107318;
double r107320 = r107317 / r107319;
double r107321 = r107316 + r107320;
double r107322 = r107284 * r107321;
double r107323 = r107268 * r107322;
return r107323;
}



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