\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.9999999999998099298181841732002794742584 + \frac{676.5203681218850988443591631948947906494}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.139216722402807135949842631816864014}{\left(\left(1 - z\right) - 1\right) + 2}\right) + \frac{771.3234287776531346025876700878143310547}{\left(\left(1 - z\right) - 1\right) + 3}\right) + \frac{-176.6150291621405870046146446838974952698}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \frac{12.50734327868690520801919774385169148445}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.1385710952657201178173096423051902092993}{\left(\left(1 - z\right) - 1\right) + 6}\right) + \frac{9.984369578019571583242346146658263705831 \cdot 10^{-6}}{\left(\left(1 - z\right) - 1\right) + 7}\right) + \frac{1.505632735149311617592788074479481785772 \cdot 10^{-7}}{\left(\left(1 - z\right) - 1\right) + 8}\right)\right)\left(\left(\sqrt{\pi \cdot 2} \cdot \left(e^{-\left(7 - z\right)} \cdot \frac{{\left(\left(7 - z\right) + 0.5\right)}^{\left(0.5 - z\right)}}{e^{0.5}}\right)\right) \cdot \frac{\pi}{\sin \left(\pi \cdot z\right)}\right) \cdot \left(\left(\left(\left(0.9999999999998099298181841732002794742584 + \left(\frac{771.3234287776531346025876700878143310547}{3 - z} + \frac{676.5203681218850988443591631948947906494}{1 - z}\right)\right) + \left(\frac{-0.1385710952657201178173096423051902092993}{6 - z} + \left(\frac{-1259.139216722402807135949842631816864014}{2 - z} + \frac{12.50734327868690520801919774385169148445}{5 - z}\right)\right)\right) + \frac{1.505632735149311617592788074479481785772 \cdot 10^{-7}}{8 - z}\right) + \left(\frac{9.984369578019571583242346146658263705831 \cdot 10^{-6}}{7 - z} + \frac{-176.6150291621405870046146446838974952698}{4 - z}\right)\right)double f(double z) {
double r121770 = atan2(1.0, 0.0);
double r121771 = z;
double r121772 = r121770 * r121771;
double r121773 = sin(r121772);
double r121774 = r121770 / r121773;
double r121775 = 2.0;
double r121776 = r121770 * r121775;
double r121777 = sqrt(r121776);
double r121778 = 1.0;
double r121779 = r121778 - r121771;
double r121780 = r121779 - r121778;
double r121781 = 7.0;
double r121782 = r121780 + r121781;
double r121783 = 0.5;
double r121784 = r121782 + r121783;
double r121785 = r121780 + r121783;
double r121786 = pow(r121784, r121785);
double r121787 = r121777 * r121786;
double r121788 = -r121784;
double r121789 = exp(r121788);
double r121790 = r121787 * r121789;
double r121791 = 0.9999999999998099;
double r121792 = 676.5203681218851;
double r121793 = r121780 + r121778;
double r121794 = r121792 / r121793;
double r121795 = r121791 + r121794;
double r121796 = -1259.1392167224028;
double r121797 = r121780 + r121775;
double r121798 = r121796 / r121797;
double r121799 = r121795 + r121798;
double r121800 = 771.3234287776531;
double r121801 = 3.0;
double r121802 = r121780 + r121801;
double r121803 = r121800 / r121802;
double r121804 = r121799 + r121803;
double r121805 = -176.6150291621406;
double r121806 = 4.0;
double r121807 = r121780 + r121806;
double r121808 = r121805 / r121807;
double r121809 = r121804 + r121808;
double r121810 = 12.507343278686905;
double r121811 = 5.0;
double r121812 = r121780 + r121811;
double r121813 = r121810 / r121812;
double r121814 = r121809 + r121813;
double r121815 = -0.13857109526572012;
double r121816 = 6.0;
double r121817 = r121780 + r121816;
double r121818 = r121815 / r121817;
double r121819 = r121814 + r121818;
double r121820 = 9.984369578019572e-06;
double r121821 = r121820 / r121782;
double r121822 = r121819 + r121821;
double r121823 = 1.5056327351493116e-07;
double r121824 = 8.0;
double r121825 = r121780 + r121824;
double r121826 = r121823 / r121825;
double r121827 = r121822 + r121826;
double r121828 = r121790 * r121827;
double r121829 = r121774 * r121828;
return r121829;
}
double f(double z) {
double r121830 = atan2(1.0, 0.0);
double r121831 = 2.0;
double r121832 = r121830 * r121831;
double r121833 = sqrt(r121832);
double r121834 = 7.0;
double r121835 = z;
double r121836 = r121834 - r121835;
double r121837 = -r121836;
double r121838 = exp(r121837);
double r121839 = 0.5;
double r121840 = r121836 + r121839;
double r121841 = r121839 - r121835;
double r121842 = pow(r121840, r121841);
double r121843 = exp(r121839);
double r121844 = r121842 / r121843;
double r121845 = r121838 * r121844;
double r121846 = r121833 * r121845;
double r121847 = r121830 * r121835;
double r121848 = sin(r121847);
double r121849 = r121830 / r121848;
double r121850 = r121846 * r121849;
double r121851 = 0.9999999999998099;
double r121852 = 771.3234287776531;
double r121853 = 3.0;
double r121854 = r121853 - r121835;
double r121855 = r121852 / r121854;
double r121856 = 676.5203681218851;
double r121857 = 1.0;
double r121858 = r121857 - r121835;
double r121859 = r121856 / r121858;
double r121860 = r121855 + r121859;
double r121861 = r121851 + r121860;
double r121862 = -0.13857109526572012;
double r121863 = 6.0;
double r121864 = r121863 - r121835;
double r121865 = r121862 / r121864;
double r121866 = -1259.1392167224028;
double r121867 = r121831 - r121835;
double r121868 = r121866 / r121867;
double r121869 = 12.507343278686905;
double r121870 = 5.0;
double r121871 = r121870 - r121835;
double r121872 = r121869 / r121871;
double r121873 = r121868 + r121872;
double r121874 = r121865 + r121873;
double r121875 = r121861 + r121874;
double r121876 = 1.5056327351493116e-07;
double r121877 = 8.0;
double r121878 = r121877 - r121835;
double r121879 = r121876 / r121878;
double r121880 = r121875 + r121879;
double r121881 = 9.984369578019572e-06;
double r121882 = r121881 / r121836;
double r121883 = -176.6150291621406;
double r121884 = 4.0;
double r121885 = r121884 - r121835;
double r121886 = r121883 / r121885;
double r121887 = r121882 + r121886;
double r121888 = r121880 + r121887;
double r121889 = r121850 * r121888;
return r121889;
}



Bits error versus z
Results
Initial program 1.8
Simplified1.3
Simplified0.6
rmApplied exp-sum0.6
Applied *-un-lft-identity0.6
Applied unpow-prod-down0.6
Applied times-frac0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019326
(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))))))