\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.9999999999998099 + \frac{676.5203681218851}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.1392167224028}{\left(\left(1 - z\right) - 1\right) + 2}\right) + \frac{771.3234287776531}{\left(\left(1 - z\right) - 1\right) + 3}\right) + \frac{-176.6150291621406}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \frac{12.507343278686905}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.13857109526572012}{\left(\left(1 - z\right) - 1\right) + 6}\right) + \frac{9.984369578019572 \cdot 10^{-06}}{\left(\left(1 - z\right) - 1\right) + 7}\right) + \frac{1.5056327351493116 \cdot 10^{-07}}{\left(\left(1 - z\right) - 1\right) + 8}\right)\right)\frac{\left(\left(\left(5 - z\right) \cdot \left(\left(8 - z\right) \cdot \left(\left(\frac{-176.6150291621406}{4 - z} + 0.9999999999998099\right) - \left(\frac{771.3234287776531}{2 + \left(1 - z\right)} + \left(\frac{676.5203681218851}{1 - z} + \frac{-1259.1392167224028}{2 - z}\right)\right)\right)\right)\right) \cdot \left({\left(\frac{-0.13857109526572012}{6 - z}\right)}^{3} + {\left(\frac{9.984369578019572 \cdot 10^{-06}}{7 - z}\right)}^{3}\right) + \left(\left(\frac{-0.13857109526572012}{6 - z} \cdot \frac{-0.13857109526572012}{6 - z} - \frac{9.984369578019572 \cdot 10^{-06}}{7 - z} \cdot \frac{-0.13857109526572012}{6 - z}\right) + \frac{9.984369578019572 \cdot 10^{-06}}{7 - z} \cdot \frac{9.984369578019572 \cdot 10^{-06}}{7 - z}\right) \cdot \left(\left(5 - z\right) \cdot \left(\left(8 - z\right) \cdot \left(\left(\frac{-176.6150291621406}{4 - z} + 0.9999999999998099\right) \cdot \left(\frac{-176.6150291621406}{4 - z} + 0.9999999999998099\right) - \left(\frac{771.3234287776531}{2 + \left(1 - z\right)} + \left(\frac{676.5203681218851}{1 - z} + \frac{-1259.1392167224028}{2 - z}\right)\right) \cdot \left(\frac{771.3234287776531}{2 + \left(1 - z\right)} + \left(\frac{676.5203681218851}{1 - z} + \frac{-1259.1392167224028}{2 - z}\right)\right)\right) + 1.5056327351493116 \cdot 10^{-07} \cdot \left(\left(\frac{-176.6150291621406}{4 - z} + 0.9999999999998099\right) - \left(\frac{771.3234287776531}{2 + \left(1 - z\right)} + \left(\frac{676.5203681218851}{1 - z} + \frac{-1259.1392167224028}{2 - z}\right)\right)\right)\right) + 12.507343278686905 \cdot \left(\left(8 - z\right) \cdot \left(\left(\frac{-176.6150291621406}{4 - z} + 0.9999999999998099\right) - \left(\frac{771.3234287776531}{2 + \left(1 - z\right)} + \left(\frac{676.5203681218851}{1 - z} + \frac{-1259.1392167224028}{2 - z}\right)\right)\right)\right)\right)\right) \cdot \left(\frac{{\left(\left(7 - z\right) + 0.5\right)}^{\left(\left(1 - z\right) - \left(1 - 0.5\right)\right)}}{e^{\left(7 - z\right) + 0.5}} \cdot \left(\sqrt{2 \cdot \pi} \cdot \pi\right)\right)}{\left(\left(\left(5 - z\right) \cdot \left(\left(8 - z\right) \cdot \left(\left(\frac{-176.6150291621406}{4 - z} + 0.9999999999998099\right) - \left(\frac{771.3234287776531}{2 + \left(1 - z\right)} + \left(\frac{676.5203681218851}{1 - z} + \frac{-1259.1392167224028}{2 - z}\right)\right)\right)\right)\right) \cdot \left(\left(\frac{-0.13857109526572012}{6 - z} \cdot \frac{-0.13857109526572012}{6 - z} - \frac{9.984369578019572 \cdot 10^{-06}}{7 - z} \cdot \frac{-0.13857109526572012}{6 - z}\right) + \frac{9.984369578019572 \cdot 10^{-06}}{7 - z} \cdot \frac{9.984369578019572 \cdot 10^{-06}}{7 - z}\right)\right) \cdot \sin \left(z \cdot \pi\right)}double f(double z) {
double r10689608 = atan2(1.0, 0.0);
double r10689609 = z;
double r10689610 = r10689608 * r10689609;
double r10689611 = sin(r10689610);
double r10689612 = r10689608 / r10689611;
double r10689613 = 2.0;
double r10689614 = r10689608 * r10689613;
double r10689615 = sqrt(r10689614);
double r10689616 = 1.0;
double r10689617 = r10689616 - r10689609;
double r10689618 = r10689617 - r10689616;
double r10689619 = 7.0;
double r10689620 = r10689618 + r10689619;
double r10689621 = 0.5;
double r10689622 = r10689620 + r10689621;
double r10689623 = r10689618 + r10689621;
double r10689624 = pow(r10689622, r10689623);
double r10689625 = r10689615 * r10689624;
double r10689626 = -r10689622;
double r10689627 = exp(r10689626);
double r10689628 = r10689625 * r10689627;
double r10689629 = 0.9999999999998099;
double r10689630 = 676.5203681218851;
double r10689631 = r10689618 + r10689616;
double r10689632 = r10689630 / r10689631;
double r10689633 = r10689629 + r10689632;
double r10689634 = -1259.1392167224028;
double r10689635 = r10689618 + r10689613;
double r10689636 = r10689634 / r10689635;
double r10689637 = r10689633 + r10689636;
double r10689638 = 771.3234287776531;
double r10689639 = 3.0;
double r10689640 = r10689618 + r10689639;
double r10689641 = r10689638 / r10689640;
double r10689642 = r10689637 + r10689641;
double r10689643 = -176.6150291621406;
double r10689644 = 4.0;
double r10689645 = r10689618 + r10689644;
double r10689646 = r10689643 / r10689645;
double r10689647 = r10689642 + r10689646;
double r10689648 = 12.507343278686905;
double r10689649 = 5.0;
double r10689650 = r10689618 + r10689649;
double r10689651 = r10689648 / r10689650;
double r10689652 = r10689647 + r10689651;
double r10689653 = -0.13857109526572012;
double r10689654 = 6.0;
double r10689655 = r10689618 + r10689654;
double r10689656 = r10689653 / r10689655;
double r10689657 = r10689652 + r10689656;
double r10689658 = 9.984369578019572e-06;
double r10689659 = r10689658 / r10689620;
double r10689660 = r10689657 + r10689659;
double r10689661 = 1.5056327351493116e-07;
double r10689662 = 8.0;
double r10689663 = r10689618 + r10689662;
double r10689664 = r10689661 / r10689663;
double r10689665 = r10689660 + r10689664;
double r10689666 = r10689628 * r10689665;
double r10689667 = r10689612 * r10689666;
return r10689667;
}
double f(double z) {
double r10689668 = 5.0;
double r10689669 = z;
double r10689670 = r10689668 - r10689669;
double r10689671 = 8.0;
double r10689672 = r10689671 - r10689669;
double r10689673 = -176.6150291621406;
double r10689674 = 4.0;
double r10689675 = r10689674 - r10689669;
double r10689676 = r10689673 / r10689675;
double r10689677 = 0.9999999999998099;
double r10689678 = r10689676 + r10689677;
double r10689679 = 771.3234287776531;
double r10689680 = 2.0;
double r10689681 = 1.0;
double r10689682 = r10689681 - r10689669;
double r10689683 = r10689680 + r10689682;
double r10689684 = r10689679 / r10689683;
double r10689685 = 676.5203681218851;
double r10689686 = r10689685 / r10689682;
double r10689687 = -1259.1392167224028;
double r10689688 = r10689680 - r10689669;
double r10689689 = r10689687 / r10689688;
double r10689690 = r10689686 + r10689689;
double r10689691 = r10689684 + r10689690;
double r10689692 = r10689678 - r10689691;
double r10689693 = r10689672 * r10689692;
double r10689694 = r10689670 * r10689693;
double r10689695 = -0.13857109526572012;
double r10689696 = 6.0;
double r10689697 = r10689696 - r10689669;
double r10689698 = r10689695 / r10689697;
double r10689699 = 3.0;
double r10689700 = pow(r10689698, r10689699);
double r10689701 = 9.984369578019572e-06;
double r10689702 = 7.0;
double r10689703 = r10689702 - r10689669;
double r10689704 = r10689701 / r10689703;
double r10689705 = pow(r10689704, r10689699);
double r10689706 = r10689700 + r10689705;
double r10689707 = r10689694 * r10689706;
double r10689708 = r10689698 * r10689698;
double r10689709 = r10689704 * r10689698;
double r10689710 = r10689708 - r10689709;
double r10689711 = r10689704 * r10689704;
double r10689712 = r10689710 + r10689711;
double r10689713 = r10689678 * r10689678;
double r10689714 = r10689691 * r10689691;
double r10689715 = r10689713 - r10689714;
double r10689716 = r10689672 * r10689715;
double r10689717 = 1.5056327351493116e-07;
double r10689718 = r10689717 * r10689692;
double r10689719 = r10689716 + r10689718;
double r10689720 = r10689670 * r10689719;
double r10689721 = 12.507343278686905;
double r10689722 = r10689721 * r10689693;
double r10689723 = r10689720 + r10689722;
double r10689724 = r10689712 * r10689723;
double r10689725 = r10689707 + r10689724;
double r10689726 = 0.5;
double r10689727 = r10689703 + r10689726;
double r10689728 = r10689681 - r10689726;
double r10689729 = r10689682 - r10689728;
double r10689730 = pow(r10689727, r10689729);
double r10689731 = exp(r10689727);
double r10689732 = r10689730 / r10689731;
double r10689733 = atan2(1.0, 0.0);
double r10689734 = r10689680 * r10689733;
double r10689735 = sqrt(r10689734);
double r10689736 = r10689735 * r10689733;
double r10689737 = r10689732 * r10689736;
double r10689738 = r10689725 * r10689737;
double r10689739 = r10689694 * r10689712;
double r10689740 = r10689669 * r10689733;
double r10689741 = sin(r10689740);
double r10689742 = r10689739 * r10689741;
double r10689743 = r10689738 / r10689742;
return r10689743;
}



Bits error versus z
Results
Initial program 1.8
Simplified0.6
rmApplied flip-+0.6
Applied frac-add0.6
Applied frac-add0.6
Applied flip3-+0.6
Applied frac-add0.9
Applied associate-*r/1.0
Applied associate-*l/1.1
Applied frac-times0.4
Final simplification0.4
herbie shell --seed 2019149 +o rules:numerics
(FPCore (z)
:name "Jmat.Real.gamma, branch z less than 0.5"
(* (/ 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))))))