\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)\left(\left(\frac{\pi}{\sin \left(\pi \cdot z\right)} \cdot \sqrt{\pi \cdot 2}\right) \cdot \left(\left(\frac{12.5073432786869052}{5 - z} + \left(\frac{1.50563273514931162 \cdot 10^{-7}}{8 - z} + \left(\frac{9.98436957801957158 \cdot 10^{-6}}{7 - z} + \frac{-0.138571095265720118}{6 - z}\right)\right)\right) + \left(\left(0.99999999999980993 + \left(\left(\frac{676.520368121885099}{1 - z} + \frac{-1259.13921672240281}{2 - z}\right) + \frac{-176.615029162140587}{4 - z}\right)\right) + \frac{771.32342877765313}{3 - z}\right)\right)\right) \cdot \left(\frac{\sqrt{{\left(0.5 + \left(7 - z\right)\right)}^{\left(0.5 - z\right)}}}{\sqrt[3]{e^{0.5 + \left(7 - z\right)}} \cdot \sqrt[3]{e^{0.5 + \left(7 - z\right)}}} \cdot \frac{\sqrt{{\left(0.5 + \left(7 - z\right)\right)}^{\left(0.5 - z\right)}}}{\sqrt[3]{e^{0.5 + \left(7 - z\right)}}}\right)double f(double z) {
double r156780 = atan2(1.0, 0.0);
double r156781 = z;
double r156782 = r156780 * r156781;
double r156783 = sin(r156782);
double r156784 = r156780 / r156783;
double r156785 = 2.0;
double r156786 = r156780 * r156785;
double r156787 = sqrt(r156786);
double r156788 = 1.0;
double r156789 = r156788 - r156781;
double r156790 = r156789 - r156788;
double r156791 = 7.0;
double r156792 = r156790 + r156791;
double r156793 = 0.5;
double r156794 = r156792 + r156793;
double r156795 = r156790 + r156793;
double r156796 = pow(r156794, r156795);
double r156797 = r156787 * r156796;
double r156798 = -r156794;
double r156799 = exp(r156798);
double r156800 = r156797 * r156799;
double r156801 = 0.9999999999998099;
double r156802 = 676.5203681218851;
double r156803 = r156790 + r156788;
double r156804 = r156802 / r156803;
double r156805 = r156801 + r156804;
double r156806 = -1259.1392167224028;
double r156807 = r156790 + r156785;
double r156808 = r156806 / r156807;
double r156809 = r156805 + r156808;
double r156810 = 771.3234287776531;
double r156811 = 3.0;
double r156812 = r156790 + r156811;
double r156813 = r156810 / r156812;
double r156814 = r156809 + r156813;
double r156815 = -176.6150291621406;
double r156816 = 4.0;
double r156817 = r156790 + r156816;
double r156818 = r156815 / r156817;
double r156819 = r156814 + r156818;
double r156820 = 12.507343278686905;
double r156821 = 5.0;
double r156822 = r156790 + r156821;
double r156823 = r156820 / r156822;
double r156824 = r156819 + r156823;
double r156825 = -0.13857109526572012;
double r156826 = 6.0;
double r156827 = r156790 + r156826;
double r156828 = r156825 / r156827;
double r156829 = r156824 + r156828;
double r156830 = 9.984369578019572e-06;
double r156831 = r156830 / r156792;
double r156832 = r156829 + r156831;
double r156833 = 1.5056327351493116e-07;
double r156834 = 8.0;
double r156835 = r156790 + r156834;
double r156836 = r156833 / r156835;
double r156837 = r156832 + r156836;
double r156838 = r156800 * r156837;
double r156839 = r156784 * r156838;
return r156839;
}
double f(double z) {
double r156840 = atan2(1.0, 0.0);
double r156841 = z;
double r156842 = r156840 * r156841;
double r156843 = sin(r156842);
double r156844 = r156840 / r156843;
double r156845 = 2.0;
double r156846 = r156840 * r156845;
double r156847 = sqrt(r156846);
double r156848 = r156844 * r156847;
double r156849 = 12.507343278686905;
double r156850 = 5.0;
double r156851 = r156850 - r156841;
double r156852 = r156849 / r156851;
double r156853 = 1.5056327351493116e-07;
double r156854 = 8.0;
double r156855 = r156854 - r156841;
double r156856 = r156853 / r156855;
double r156857 = 9.984369578019572e-06;
double r156858 = 7.0;
double r156859 = r156858 - r156841;
double r156860 = r156857 / r156859;
double r156861 = -0.13857109526572012;
double r156862 = 6.0;
double r156863 = r156862 - r156841;
double r156864 = r156861 / r156863;
double r156865 = r156860 + r156864;
double r156866 = r156856 + r156865;
double r156867 = r156852 + r156866;
double r156868 = 0.9999999999998099;
double r156869 = 676.5203681218851;
double r156870 = 1.0;
double r156871 = r156870 - r156841;
double r156872 = r156869 / r156871;
double r156873 = -1259.1392167224028;
double r156874 = r156845 - r156841;
double r156875 = r156873 / r156874;
double r156876 = r156872 + r156875;
double r156877 = -176.6150291621406;
double r156878 = 4.0;
double r156879 = r156878 - r156841;
double r156880 = r156877 / r156879;
double r156881 = r156876 + r156880;
double r156882 = r156868 + r156881;
double r156883 = 771.3234287776531;
double r156884 = 3.0;
double r156885 = r156884 - r156841;
double r156886 = r156883 / r156885;
double r156887 = r156882 + r156886;
double r156888 = r156867 + r156887;
double r156889 = r156848 * r156888;
double r156890 = 0.5;
double r156891 = r156890 + r156859;
double r156892 = r156890 - r156841;
double r156893 = pow(r156891, r156892);
double r156894 = sqrt(r156893);
double r156895 = exp(r156891);
double r156896 = cbrt(r156895);
double r156897 = r156896 * r156896;
double r156898 = r156894 / r156897;
double r156899 = r156894 / r156896;
double r156900 = r156898 * r156899;
double r156901 = r156889 * r156900;
return r156901;
}



Bits error versus z
Results
Initial program 1.8
Simplified1.2
rmApplied add-cube-cbrt1.2
Applied add-sqr-sqrt1.2
Applied times-frac1.2
Final simplification1.2
herbie shell --seed 2020043 +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))))))