\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 r142381 = atan2(1.0, 0.0);
double r142382 = z;
double r142383 = r142381 * r142382;
double r142384 = sin(r142383);
double r142385 = r142381 / r142384;
double r142386 = 2.0;
double r142387 = r142381 * r142386;
double r142388 = sqrt(r142387);
double r142389 = 1.0;
double r142390 = r142389 - r142382;
double r142391 = r142390 - r142389;
double r142392 = 7.0;
double r142393 = r142391 + r142392;
double r142394 = 0.5;
double r142395 = r142393 + r142394;
double r142396 = r142391 + r142394;
double r142397 = pow(r142395, r142396);
double r142398 = r142388 * r142397;
double r142399 = -r142395;
double r142400 = exp(r142399);
double r142401 = r142398 * r142400;
double r142402 = 0.9999999999998099;
double r142403 = 676.5203681218851;
double r142404 = r142391 + r142389;
double r142405 = r142403 / r142404;
double r142406 = r142402 + r142405;
double r142407 = -1259.1392167224028;
double r142408 = r142391 + r142386;
double r142409 = r142407 / r142408;
double r142410 = r142406 + r142409;
double r142411 = 771.3234287776531;
double r142412 = 3.0;
double r142413 = r142391 + r142412;
double r142414 = r142411 / r142413;
double r142415 = r142410 + r142414;
double r142416 = -176.6150291621406;
double r142417 = 4.0;
double r142418 = r142391 + r142417;
double r142419 = r142416 / r142418;
double r142420 = r142415 + r142419;
double r142421 = 12.507343278686905;
double r142422 = 5.0;
double r142423 = r142391 + r142422;
double r142424 = r142421 / r142423;
double r142425 = r142420 + r142424;
double r142426 = -0.13857109526572012;
double r142427 = 6.0;
double r142428 = r142391 + r142427;
double r142429 = r142426 / r142428;
double r142430 = r142425 + r142429;
double r142431 = 9.984369578019572e-06;
double r142432 = r142431 / r142393;
double r142433 = r142430 + r142432;
double r142434 = 1.5056327351493116e-07;
double r142435 = 8.0;
double r142436 = r142391 + r142435;
double r142437 = r142434 / r142436;
double r142438 = r142433 + r142437;
double r142439 = r142401 * r142438;
double r142440 = r142385 * r142439;
return r142440;
}
double f(double z) {
double r142441 = atan2(1.0, 0.0);
double r142442 = z;
double r142443 = r142441 * r142442;
double r142444 = sin(r142443);
double r142445 = r142441 / r142444;
double r142446 = 2.0;
double r142447 = r142441 * r142446;
double r142448 = sqrt(r142447);
double r142449 = 1.0;
double r142450 = r142449 - r142442;
double r142451 = r142450 - r142449;
double r142452 = 7.0;
double r142453 = r142451 + r142452;
double r142454 = 0.5;
double r142455 = r142453 + r142454;
double r142456 = r142451 + r142454;
double r142457 = pow(r142455, r142456);
double r142458 = r142448 * r142457;
double r142459 = -r142455;
double r142460 = exp(r142459);
double r142461 = r142458 * r142460;
double r142462 = 0.9999999999998099;
double r142463 = 676.5203681218851;
double r142464 = r142451 + r142449;
double r142465 = r142463 / r142464;
double r142466 = r142462 + r142465;
double r142467 = -1259.1392167224028;
double r142468 = r142451 + r142446;
double r142469 = r142467 / r142468;
double r142470 = r142466 + r142469;
double r142471 = 771.3234287776531;
double r142472 = 3.0;
double r142473 = r142451 + r142472;
double r142474 = r142471 / r142473;
double r142475 = r142470 + r142474;
double r142476 = -176.6150291621406;
double r142477 = 4.0;
double r142478 = r142451 + r142477;
double r142479 = r142476 / r142478;
double r142480 = r142475 + r142479;
double r142481 = 12.507343278686905;
double r142482 = 5.0;
double r142483 = r142451 + r142482;
double r142484 = r142481 / r142483;
double r142485 = r142480 + r142484;
double r142486 = -0.13857109526572012;
double r142487 = 6.0;
double r142488 = r142451 + r142487;
double r142489 = r142486 / r142488;
double r142490 = r142485 + r142489;
double r142491 = 9.984369578019572e-06;
double r142492 = r142491 / r142453;
double r142493 = r142490 + r142492;
double r142494 = 1.5056327351493116e-07;
double r142495 = 8.0;
double r142496 = r142451 + r142495;
double r142497 = r142494 / r142496;
double r142498 = r142493 + r142497;
double r142499 = r142461 * r142498;
double r142500 = r142445 * r142499;
return r142500;
}



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