\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 r446 = atan2(1.0, 0.0);
double r447 = z;
double r448 = r446 * r447;
double r449 = sin(r448);
double r450 = r446 / r449;
double r451 = 2.0;
double r452 = r446 * r451;
double r453 = sqrt(r452);
double r454 = 1.0;
double r455 = r454 - r447;
double r456 = r455 - r454;
double r457 = 7.0;
double r458 = r456 + r457;
double r459 = 0.5;
double r460 = r458 + r459;
double r461 = r456 + r459;
double r462 = pow(r460, r461);
double r463 = r453 * r462;
double r464 = -r460;
double r465 = exp(r464);
double r466 = r463 * r465;
double r467 = 0.9999999999998099;
double r468 = 676.5203681218851;
double r469 = r456 + r454;
double r470 = r468 / r469;
double r471 = r467 + r470;
double r472 = -1259.1392167224028;
double r473 = r456 + r451;
double r474 = r472 / r473;
double r475 = r471 + r474;
double r476 = 771.3234287776531;
double r477 = 3.0;
double r478 = r456 + r477;
double r479 = r476 / r478;
double r480 = r475 + r479;
double r481 = -176.6150291621406;
double r482 = 4.0;
double r483 = r456 + r482;
double r484 = r481 / r483;
double r485 = r480 + r484;
double r486 = 12.507343278686905;
double r487 = 5.0;
double r488 = r456 + r487;
double r489 = r486 / r488;
double r490 = r485 + r489;
double r491 = -0.13857109526572012;
double r492 = 6.0;
double r493 = r456 + r492;
double r494 = r491 / r493;
double r495 = r490 + r494;
double r496 = 9.984369578019572e-06;
double r497 = r496 / r458;
double r498 = r495 + r497;
double r499 = 1.5056327351493116e-07;
double r500 = 8.0;
double r501 = r456 + r500;
double r502 = r499 / r501;
double r503 = r498 + r502;
double r504 = r466 * r503;
double r505 = r450 * r504;
return r505;
}
double f(double z) {
double r506 = atan2(1.0, 0.0);
double r507 = z;
double r508 = r506 * r507;
double r509 = sin(r508);
double r510 = r506 / r509;
double r511 = 2.0;
double r512 = r506 * r511;
double r513 = sqrt(r512);
double r514 = 1.0;
double r515 = r514 - r507;
double r516 = r515 - r514;
double r517 = 7.0;
double r518 = r516 + r517;
double r519 = 0.5;
double r520 = r518 + r519;
double r521 = r516 + r519;
double r522 = pow(r520, r521);
double r523 = r513 * r522;
double r524 = -r520;
double r525 = exp(r524);
double r526 = r523 * r525;
double r527 = 0.9999999999998099;
double r528 = 676.5203681218851;
double r529 = r516 + r514;
double r530 = r528 / r529;
double r531 = r527 + r530;
double r532 = -1259.1392167224028;
double r533 = r516 + r511;
double r534 = r532 / r533;
double r535 = r531 + r534;
double r536 = 771.3234287776531;
double r537 = 3.0;
double r538 = r516 + r537;
double r539 = r536 / r538;
double r540 = r535 + r539;
double r541 = -176.6150291621406;
double r542 = 4.0;
double r543 = r516 + r542;
double r544 = r541 / r543;
double r545 = r540 + r544;
double r546 = 12.507343278686905;
double r547 = 5.0;
double r548 = r516 + r547;
double r549 = r546 / r548;
double r550 = r545 + r549;
double r551 = -0.13857109526572012;
double r552 = 6.0;
double r553 = r516 + r552;
double r554 = r551 / r553;
double r555 = r550 + r554;
double r556 = 9.984369578019572e-06;
double r557 = r556 / r518;
double r558 = r555 + r557;
double r559 = 1.5056327351493116e-07;
double r560 = 8.0;
double r561 = r516 + r560;
double r562 = r559 / r561;
double r563 = r558 + r562;
double r564 = r526 * r563;
double r565 = r510 * r564;
return r565;
}



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