\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 r134581 = atan2(1.0, 0.0);
double r134582 = z;
double r134583 = r134581 * r134582;
double r134584 = sin(r134583);
double r134585 = r134581 / r134584;
double r134586 = 2.0;
double r134587 = r134581 * r134586;
double r134588 = sqrt(r134587);
double r134589 = 1.0;
double r134590 = r134589 - r134582;
double r134591 = r134590 - r134589;
double r134592 = 7.0;
double r134593 = r134591 + r134592;
double r134594 = 0.5;
double r134595 = r134593 + r134594;
double r134596 = r134591 + r134594;
double r134597 = pow(r134595, r134596);
double r134598 = r134588 * r134597;
double r134599 = -r134595;
double r134600 = exp(r134599);
double r134601 = r134598 * r134600;
double r134602 = 0.9999999999998099;
double r134603 = 676.5203681218851;
double r134604 = r134591 + r134589;
double r134605 = r134603 / r134604;
double r134606 = r134602 + r134605;
double r134607 = -1259.1392167224028;
double r134608 = r134591 + r134586;
double r134609 = r134607 / r134608;
double r134610 = r134606 + r134609;
double r134611 = 771.3234287776531;
double r134612 = 3.0;
double r134613 = r134591 + r134612;
double r134614 = r134611 / r134613;
double r134615 = r134610 + r134614;
double r134616 = -176.6150291621406;
double r134617 = 4.0;
double r134618 = r134591 + r134617;
double r134619 = r134616 / r134618;
double r134620 = r134615 + r134619;
double r134621 = 12.507343278686905;
double r134622 = 5.0;
double r134623 = r134591 + r134622;
double r134624 = r134621 / r134623;
double r134625 = r134620 + r134624;
double r134626 = -0.13857109526572012;
double r134627 = 6.0;
double r134628 = r134591 + r134627;
double r134629 = r134626 / r134628;
double r134630 = r134625 + r134629;
double r134631 = 9.984369578019572e-06;
double r134632 = r134631 / r134593;
double r134633 = r134630 + r134632;
double r134634 = 1.5056327351493116e-07;
double r134635 = 8.0;
double r134636 = r134591 + r134635;
double r134637 = r134634 / r134636;
double r134638 = r134633 + r134637;
double r134639 = r134601 * r134638;
double r134640 = r134585 * r134639;
return r134640;
}
double f(double z) {
double r134641 = atan2(1.0, 0.0);
double r134642 = z;
double r134643 = r134641 * r134642;
double r134644 = sin(r134643);
double r134645 = r134641 / r134644;
double r134646 = 2.0;
double r134647 = r134641 * r134646;
double r134648 = sqrt(r134647);
double r134649 = 1.0;
double r134650 = r134649 - r134642;
double r134651 = r134650 - r134649;
double r134652 = 7.0;
double r134653 = r134651 + r134652;
double r134654 = 0.5;
double r134655 = r134653 + r134654;
double r134656 = r134651 + r134654;
double r134657 = pow(r134655, r134656);
double r134658 = r134648 * r134657;
double r134659 = -r134655;
double r134660 = exp(r134659);
double r134661 = r134658 * r134660;
double r134662 = 0.9999999999998099;
double r134663 = 676.5203681218851;
double r134664 = r134651 + r134649;
double r134665 = r134663 / r134664;
double r134666 = r134662 + r134665;
double r134667 = -1259.1392167224028;
double r134668 = r134651 + r134646;
double r134669 = r134667 / r134668;
double r134670 = r134666 + r134669;
double r134671 = 771.3234287776531;
double r134672 = 3.0;
double r134673 = r134651 + r134672;
double r134674 = r134671 / r134673;
double r134675 = r134670 + r134674;
double r134676 = -176.6150291621406;
double r134677 = 4.0;
double r134678 = r134651 + r134677;
double r134679 = r134676 / r134678;
double r134680 = r134675 + r134679;
double r134681 = 12.507343278686905;
double r134682 = 5.0;
double r134683 = r134651 + r134682;
double r134684 = r134681 / r134683;
double r134685 = r134680 + r134684;
double r134686 = -0.13857109526572012;
double r134687 = 6.0;
double r134688 = r134651 + r134687;
double r134689 = r134686 / r134688;
double r134690 = r134685 + r134689;
double r134691 = 9.984369578019572e-06;
double r134692 = r134691 / r134653;
double r134693 = r134690 + r134692;
double r134694 = 1.5056327351493116e-07;
double r134695 = 8.0;
double r134696 = r134651 + r134695;
double r134697 = r134694 / r134696;
double r134698 = r134693 + r134697;
double r134699 = r134661 * r134698;
double r134700 = r134645 * r134699;
return r134700;
}



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