\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 r133498 = atan2(1.0, 0.0);
double r133499 = z;
double r133500 = r133498 * r133499;
double r133501 = sin(r133500);
double r133502 = r133498 / r133501;
double r133503 = 2.0;
double r133504 = r133498 * r133503;
double r133505 = sqrt(r133504);
double r133506 = 1.0;
double r133507 = r133506 - r133499;
double r133508 = r133507 - r133506;
double r133509 = 7.0;
double r133510 = r133508 + r133509;
double r133511 = 0.5;
double r133512 = r133510 + r133511;
double r133513 = r133508 + r133511;
double r133514 = pow(r133512, r133513);
double r133515 = r133505 * r133514;
double r133516 = -r133512;
double r133517 = exp(r133516);
double r133518 = r133515 * r133517;
double r133519 = 0.9999999999998099;
double r133520 = 676.5203681218851;
double r133521 = r133508 + r133506;
double r133522 = r133520 / r133521;
double r133523 = r133519 + r133522;
double r133524 = -1259.1392167224028;
double r133525 = r133508 + r133503;
double r133526 = r133524 / r133525;
double r133527 = r133523 + r133526;
double r133528 = 771.3234287776531;
double r133529 = 3.0;
double r133530 = r133508 + r133529;
double r133531 = r133528 / r133530;
double r133532 = r133527 + r133531;
double r133533 = -176.6150291621406;
double r133534 = 4.0;
double r133535 = r133508 + r133534;
double r133536 = r133533 / r133535;
double r133537 = r133532 + r133536;
double r133538 = 12.507343278686905;
double r133539 = 5.0;
double r133540 = r133508 + r133539;
double r133541 = r133538 / r133540;
double r133542 = r133537 + r133541;
double r133543 = -0.13857109526572012;
double r133544 = 6.0;
double r133545 = r133508 + r133544;
double r133546 = r133543 / r133545;
double r133547 = r133542 + r133546;
double r133548 = 9.984369578019572e-06;
double r133549 = r133548 / r133510;
double r133550 = r133547 + r133549;
double r133551 = 1.5056327351493116e-07;
double r133552 = 8.0;
double r133553 = r133508 + r133552;
double r133554 = r133551 / r133553;
double r133555 = r133550 + r133554;
double r133556 = r133518 * r133555;
double r133557 = r133502 * r133556;
return r133557;
}
double f(double z) {
double r133558 = atan2(1.0, 0.0);
double r133559 = z;
double r133560 = r133558 * r133559;
double r133561 = sin(r133560);
double r133562 = r133558 / r133561;
double r133563 = 2.0;
double r133564 = r133558 * r133563;
double r133565 = sqrt(r133564);
double r133566 = 1.0;
double r133567 = r133566 - r133559;
double r133568 = r133567 - r133566;
double r133569 = 7.0;
double r133570 = r133568 + r133569;
double r133571 = 0.5;
double r133572 = r133570 + r133571;
double r133573 = r133568 + r133571;
double r133574 = pow(r133572, r133573);
double r133575 = r133565 * r133574;
double r133576 = -r133572;
double r133577 = exp(r133576);
double r133578 = r133575 * r133577;
double r133579 = 0.9999999999998099;
double r133580 = 676.5203681218851;
double r133581 = r133568 + r133566;
double r133582 = r133580 / r133581;
double r133583 = r133579 + r133582;
double r133584 = -1259.1392167224028;
double r133585 = r133568 + r133563;
double r133586 = r133584 / r133585;
double r133587 = r133583 + r133586;
double r133588 = 771.3234287776531;
double r133589 = 3.0;
double r133590 = r133568 + r133589;
double r133591 = r133588 / r133590;
double r133592 = r133587 + r133591;
double r133593 = -176.6150291621406;
double r133594 = 4.0;
double r133595 = r133568 + r133594;
double r133596 = r133593 / r133595;
double r133597 = r133592 + r133596;
double r133598 = 12.507343278686905;
double r133599 = 5.0;
double r133600 = r133568 + r133599;
double r133601 = r133598 / r133600;
double r133602 = r133597 + r133601;
double r133603 = -0.13857109526572012;
double r133604 = 6.0;
double r133605 = r133568 + r133604;
double r133606 = r133603 / r133605;
double r133607 = r133602 + r133606;
double r133608 = 9.984369578019572e-06;
double r133609 = r133608 / r133570;
double r133610 = r133607 + r133609;
double r133611 = 1.5056327351493116e-07;
double r133612 = 8.0;
double r133613 = r133568 + r133612;
double r133614 = r133611 / r133613;
double r133615 = r133610 + r133614;
double r133616 = r133578 * r133615;
double r133617 = r133562 * r133616;
return r133617;
}



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