\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)\left(\frac{\pi}{\sin \left(\pi \cdot z\right)} \cdot \left(\frac{\sqrt[3]{{\left(0.5 + \left(7 - z\right)\right)}^{\left(0.5 + \left(-z\right)\right)}} \cdot \sqrt[3]{{\left(0.5 + \left(7 - z\right)\right)}^{\left(0.5 + \left(-z\right)\right)}}}{\sqrt[3]{e^{0.5 + \left(7 - z\right)}} \cdot \sqrt[3]{e^{0.5 + \left(7 - z\right)}}} \cdot \frac{\sqrt[3]{{\left(0.5 + \left(7 - z\right)\right)}^{\left(0.5 + \left(-z\right)\right)}}}{\sqrt[3]{e^{0.5 + \left(7 - z\right)}}}\right)\right) \cdot \left(\sqrt{\pi \cdot 2} \cdot \left(\left(\left(\left(\frac{1.5056327351493116 \cdot 10^{-07}}{8 - z} + \frac{-0.13857109526572012}{6 - z}\right) + \frac{9.984369578019572 \cdot 10^{-06}}{7 - z}\right) + \frac{12.507343278686905}{5 - z}\right) + \left(\left(\left(\frac{676.5203681218851}{1 - z} + \frac{771.3234287776531}{2 + \left(1 - z\right)}\right) + 0.9999999999998099\right) + \left(\frac{-1259.1392167224028}{2 - z} + \frac{-176.6150291621406}{4 - z}\right)\right)\right)\right)double f(double z) {
double r5201731 = atan2(1.0, 0.0);
double r5201732 = z;
double r5201733 = r5201731 * r5201732;
double r5201734 = sin(r5201733);
double r5201735 = r5201731 / r5201734;
double r5201736 = 2.0;
double r5201737 = r5201731 * r5201736;
double r5201738 = sqrt(r5201737);
double r5201739 = 1.0;
double r5201740 = r5201739 - r5201732;
double r5201741 = r5201740 - r5201739;
double r5201742 = 7.0;
double r5201743 = r5201741 + r5201742;
double r5201744 = 0.5;
double r5201745 = r5201743 + r5201744;
double r5201746 = r5201741 + r5201744;
double r5201747 = pow(r5201745, r5201746);
double r5201748 = r5201738 * r5201747;
double r5201749 = -r5201745;
double r5201750 = exp(r5201749);
double r5201751 = r5201748 * r5201750;
double r5201752 = 0.9999999999998099;
double r5201753 = 676.5203681218851;
double r5201754 = r5201741 + r5201739;
double r5201755 = r5201753 / r5201754;
double r5201756 = r5201752 + r5201755;
double r5201757 = -1259.1392167224028;
double r5201758 = r5201741 + r5201736;
double r5201759 = r5201757 / r5201758;
double r5201760 = r5201756 + r5201759;
double r5201761 = 771.3234287776531;
double r5201762 = 3.0;
double r5201763 = r5201741 + r5201762;
double r5201764 = r5201761 / r5201763;
double r5201765 = r5201760 + r5201764;
double r5201766 = -176.6150291621406;
double r5201767 = 4.0;
double r5201768 = r5201741 + r5201767;
double r5201769 = r5201766 / r5201768;
double r5201770 = r5201765 + r5201769;
double r5201771 = 12.507343278686905;
double r5201772 = 5.0;
double r5201773 = r5201741 + r5201772;
double r5201774 = r5201771 / r5201773;
double r5201775 = r5201770 + r5201774;
double r5201776 = -0.13857109526572012;
double r5201777 = 6.0;
double r5201778 = r5201741 + r5201777;
double r5201779 = r5201776 / r5201778;
double r5201780 = r5201775 + r5201779;
double r5201781 = 9.984369578019572e-06;
double r5201782 = r5201781 / r5201743;
double r5201783 = r5201780 + r5201782;
double r5201784 = 1.5056327351493116e-07;
double r5201785 = 8.0;
double r5201786 = r5201741 + r5201785;
double r5201787 = r5201784 / r5201786;
double r5201788 = r5201783 + r5201787;
double r5201789 = r5201751 * r5201788;
double r5201790 = r5201735 * r5201789;
return r5201790;
}
double f(double z) {
double r5201791 = atan2(1.0, 0.0);
double r5201792 = z;
double r5201793 = r5201791 * r5201792;
double r5201794 = sin(r5201793);
double r5201795 = r5201791 / r5201794;
double r5201796 = 0.5;
double r5201797 = 7.0;
double r5201798 = r5201797 - r5201792;
double r5201799 = r5201796 + r5201798;
double r5201800 = -r5201792;
double r5201801 = r5201796 + r5201800;
double r5201802 = pow(r5201799, r5201801);
double r5201803 = cbrt(r5201802);
double r5201804 = r5201803 * r5201803;
double r5201805 = exp(r5201799);
double r5201806 = cbrt(r5201805);
double r5201807 = r5201806 * r5201806;
double r5201808 = r5201804 / r5201807;
double r5201809 = r5201803 / r5201806;
double r5201810 = r5201808 * r5201809;
double r5201811 = r5201795 * r5201810;
double r5201812 = 2.0;
double r5201813 = r5201791 * r5201812;
double r5201814 = sqrt(r5201813);
double r5201815 = 1.5056327351493116e-07;
double r5201816 = 8.0;
double r5201817 = r5201816 - r5201792;
double r5201818 = r5201815 / r5201817;
double r5201819 = -0.13857109526572012;
double r5201820 = 6.0;
double r5201821 = r5201820 - r5201792;
double r5201822 = r5201819 / r5201821;
double r5201823 = r5201818 + r5201822;
double r5201824 = 9.984369578019572e-06;
double r5201825 = r5201824 / r5201798;
double r5201826 = r5201823 + r5201825;
double r5201827 = 12.507343278686905;
double r5201828 = 5.0;
double r5201829 = r5201828 - r5201792;
double r5201830 = r5201827 / r5201829;
double r5201831 = r5201826 + r5201830;
double r5201832 = 676.5203681218851;
double r5201833 = 1.0;
double r5201834 = r5201833 - r5201792;
double r5201835 = r5201832 / r5201834;
double r5201836 = 771.3234287776531;
double r5201837 = r5201812 + r5201834;
double r5201838 = r5201836 / r5201837;
double r5201839 = r5201835 + r5201838;
double r5201840 = 0.9999999999998099;
double r5201841 = r5201839 + r5201840;
double r5201842 = -1259.1392167224028;
double r5201843 = r5201812 - r5201792;
double r5201844 = r5201842 / r5201843;
double r5201845 = -176.6150291621406;
double r5201846 = 4.0;
double r5201847 = r5201846 - r5201792;
double r5201848 = r5201845 / r5201847;
double r5201849 = r5201844 + r5201848;
double r5201850 = r5201841 + r5201849;
double r5201851 = r5201831 + r5201850;
double r5201852 = r5201814 * r5201851;
double r5201853 = r5201811 * r5201852;
return r5201853;
}



Bits error versus z
Results
Initial program 1.8
Simplified1.8
rmApplied add-cube-cbrt1.8
Applied add-cube-cbrt0.5
Applied times-frac0.5
Final simplification0.5
herbie shell --seed 2019133 +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))))))