\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(z \cdot \pi\right)} \cdot \left(\left(\frac{{\left(\left(7 - z\right) + 0.5\right)}^{\left(0.5 - z\right)}}{e^{7}} \cdot e^{z - 0.5}\right) \cdot \left(\frac{12.507343278686905}{5 - z} + \left(\left(\left(\left(\frac{-1259.1392167224028}{2 - z} + \frac{676.5203681218851}{1 - z}\right) + 0.9999999999998099\right) + \left(\frac{-0.13857109526572012}{6 - z} + \mathsf{fma}\left(\frac{\sqrt{771.3234287776531}}{\sqrt[3]{2 + \left(1 - z\right)} \cdot \sqrt[3]{2 + \left(1 - z\right)}}, \frac{\sqrt{771.3234287776531}}{\sqrt[3]{2 + \left(1 - z\right)}}, \frac{-176.6150291621406}{\left(2 + \left(1 - z\right)\right) + 1}\right)\right)\right) + \left(\frac{9.984369578019572 \cdot 10^{-06}}{7 - z} + \frac{1.5056327351493116 \cdot 10^{-07}}{8 - z}\right)\right)\right)\right)\right) \cdot \sqrt{2 \cdot \pi}double f(double z) {
double r6763780 = atan2(1.0, 0.0);
double r6763781 = z;
double r6763782 = r6763780 * r6763781;
double r6763783 = sin(r6763782);
double r6763784 = r6763780 / r6763783;
double r6763785 = 2.0;
double r6763786 = r6763780 * r6763785;
double r6763787 = sqrt(r6763786);
double r6763788 = 1.0;
double r6763789 = r6763788 - r6763781;
double r6763790 = r6763789 - r6763788;
double r6763791 = 7.0;
double r6763792 = r6763790 + r6763791;
double r6763793 = 0.5;
double r6763794 = r6763792 + r6763793;
double r6763795 = r6763790 + r6763793;
double r6763796 = pow(r6763794, r6763795);
double r6763797 = r6763787 * r6763796;
double r6763798 = -r6763794;
double r6763799 = exp(r6763798);
double r6763800 = r6763797 * r6763799;
double r6763801 = 0.9999999999998099;
double r6763802 = 676.5203681218851;
double r6763803 = r6763790 + r6763788;
double r6763804 = r6763802 / r6763803;
double r6763805 = r6763801 + r6763804;
double r6763806 = -1259.1392167224028;
double r6763807 = r6763790 + r6763785;
double r6763808 = r6763806 / r6763807;
double r6763809 = r6763805 + r6763808;
double r6763810 = 771.3234287776531;
double r6763811 = 3.0;
double r6763812 = r6763790 + r6763811;
double r6763813 = r6763810 / r6763812;
double r6763814 = r6763809 + r6763813;
double r6763815 = -176.6150291621406;
double r6763816 = 4.0;
double r6763817 = r6763790 + r6763816;
double r6763818 = r6763815 / r6763817;
double r6763819 = r6763814 + r6763818;
double r6763820 = 12.507343278686905;
double r6763821 = 5.0;
double r6763822 = r6763790 + r6763821;
double r6763823 = r6763820 / r6763822;
double r6763824 = r6763819 + r6763823;
double r6763825 = -0.13857109526572012;
double r6763826 = 6.0;
double r6763827 = r6763790 + r6763826;
double r6763828 = r6763825 / r6763827;
double r6763829 = r6763824 + r6763828;
double r6763830 = 9.984369578019572e-06;
double r6763831 = r6763830 / r6763792;
double r6763832 = r6763829 + r6763831;
double r6763833 = 1.5056327351493116e-07;
double r6763834 = 8.0;
double r6763835 = r6763790 + r6763834;
double r6763836 = r6763833 / r6763835;
double r6763837 = r6763832 + r6763836;
double r6763838 = r6763800 * r6763837;
double r6763839 = r6763784 * r6763838;
return r6763839;
}
double f(double z) {
double r6763840 = atan2(1.0, 0.0);
double r6763841 = z;
double r6763842 = r6763841 * r6763840;
double r6763843 = sin(r6763842);
double r6763844 = r6763840 / r6763843;
double r6763845 = 7.0;
double r6763846 = r6763845 - r6763841;
double r6763847 = 0.5;
double r6763848 = r6763846 + r6763847;
double r6763849 = r6763847 - r6763841;
double r6763850 = pow(r6763848, r6763849);
double r6763851 = exp(r6763845);
double r6763852 = r6763850 / r6763851;
double r6763853 = r6763841 - r6763847;
double r6763854 = exp(r6763853);
double r6763855 = r6763852 * r6763854;
double r6763856 = 12.507343278686905;
double r6763857 = 5.0;
double r6763858 = r6763857 - r6763841;
double r6763859 = r6763856 / r6763858;
double r6763860 = -1259.1392167224028;
double r6763861 = 2.0;
double r6763862 = r6763861 - r6763841;
double r6763863 = r6763860 / r6763862;
double r6763864 = 676.5203681218851;
double r6763865 = 1.0;
double r6763866 = r6763865 - r6763841;
double r6763867 = r6763864 / r6763866;
double r6763868 = r6763863 + r6763867;
double r6763869 = 0.9999999999998099;
double r6763870 = r6763868 + r6763869;
double r6763871 = -0.13857109526572012;
double r6763872 = 6.0;
double r6763873 = r6763872 - r6763841;
double r6763874 = r6763871 / r6763873;
double r6763875 = 771.3234287776531;
double r6763876 = sqrt(r6763875);
double r6763877 = r6763861 + r6763866;
double r6763878 = cbrt(r6763877);
double r6763879 = r6763878 * r6763878;
double r6763880 = r6763876 / r6763879;
double r6763881 = r6763876 / r6763878;
double r6763882 = -176.6150291621406;
double r6763883 = r6763877 + r6763865;
double r6763884 = r6763882 / r6763883;
double r6763885 = fma(r6763880, r6763881, r6763884);
double r6763886 = r6763874 + r6763885;
double r6763887 = r6763870 + r6763886;
double r6763888 = 9.984369578019572e-06;
double r6763889 = r6763888 / r6763846;
double r6763890 = 1.5056327351493116e-07;
double r6763891 = 8.0;
double r6763892 = r6763891 - r6763841;
double r6763893 = r6763890 / r6763892;
double r6763894 = r6763889 + r6763893;
double r6763895 = r6763887 + r6763894;
double r6763896 = r6763859 + r6763895;
double r6763897 = r6763855 * r6763896;
double r6763898 = r6763844 * r6763897;
double r6763899 = r6763861 * r6763840;
double r6763900 = sqrt(r6763899);
double r6763901 = r6763898 * r6763900;
return r6763901;
}



Bits error versus z
Initial program 1.8
Simplified0.5
rmApplied associate-+l-0.5
Applied exp-diff0.5
Applied associate-/r/0.5
Simplified0.5
rmApplied add-cube-cbrt0.5
Applied add-sqr-sqrt0.5
Applied times-frac0.5
Applied fma-def0.5
Final simplification0.5
herbie shell --seed 2019163 +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))))))