\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(\left(\left(\sqrt{2 \cdot \pi} \cdot {\left(\left(7 + \left(\left(1 - z\right) - 1\right)\right) + 0.5\right)}^{\left(0.5 + \left(\left(1 - z\right) - 1\right)\right)}\right) \cdot e^{-\left(\left(7 + \left(\left(1 - z\right) - 1\right)\right) + 0.5\right)}\right) \cdot \left(\frac{1.5056327351493116 \cdot 10^{-07}}{8 + \left(\left(1 - z\right) - 1\right)} + \left(\frac{9.984369578019572 \cdot 10^{-06}}{7 + \left(\left(1 - z\right) - 1\right)} + \left(\left(\left(\frac{-176.6150291621406}{\left(\left(1 - z\right) - 1\right) + 4} + \left(\frac{771.3234287776531}{3 + \left(\left(1 - z\right) - 1\right)} + \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)\right)\right) + \frac{12.507343278686905}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.13857109526572012}{6 + \left(\left(1 - z\right) - 1\right)}\right)\right)\right)\right) \cdot \frac{\pi}{\sin \left(\pi \cdot z\right)}double f(double z) {
double r4323808 = atan2(1.0, 0.0);
double r4323809 = z;
double r4323810 = r4323808 * r4323809;
double r4323811 = sin(r4323810);
double r4323812 = r4323808 / r4323811;
double r4323813 = 2.0;
double r4323814 = r4323808 * r4323813;
double r4323815 = sqrt(r4323814);
double r4323816 = 1.0;
double r4323817 = r4323816 - r4323809;
double r4323818 = r4323817 - r4323816;
double r4323819 = 7.0;
double r4323820 = r4323818 + r4323819;
double r4323821 = 0.5;
double r4323822 = r4323820 + r4323821;
double r4323823 = r4323818 + r4323821;
double r4323824 = pow(r4323822, r4323823);
double r4323825 = r4323815 * r4323824;
double r4323826 = -r4323822;
double r4323827 = exp(r4323826);
double r4323828 = r4323825 * r4323827;
double r4323829 = 0.9999999999998099;
double r4323830 = 676.5203681218851;
double r4323831 = r4323818 + r4323816;
double r4323832 = r4323830 / r4323831;
double r4323833 = r4323829 + r4323832;
double r4323834 = -1259.1392167224028;
double r4323835 = r4323818 + r4323813;
double r4323836 = r4323834 / r4323835;
double r4323837 = r4323833 + r4323836;
double r4323838 = 771.3234287776531;
double r4323839 = 3.0;
double r4323840 = r4323818 + r4323839;
double r4323841 = r4323838 / r4323840;
double r4323842 = r4323837 + r4323841;
double r4323843 = -176.6150291621406;
double r4323844 = 4.0;
double r4323845 = r4323818 + r4323844;
double r4323846 = r4323843 / r4323845;
double r4323847 = r4323842 + r4323846;
double r4323848 = 12.507343278686905;
double r4323849 = 5.0;
double r4323850 = r4323818 + r4323849;
double r4323851 = r4323848 / r4323850;
double r4323852 = r4323847 + r4323851;
double r4323853 = -0.13857109526572012;
double r4323854 = 6.0;
double r4323855 = r4323818 + r4323854;
double r4323856 = r4323853 / r4323855;
double r4323857 = r4323852 + r4323856;
double r4323858 = 9.984369578019572e-06;
double r4323859 = r4323858 / r4323820;
double r4323860 = r4323857 + r4323859;
double r4323861 = 1.5056327351493116e-07;
double r4323862 = 8.0;
double r4323863 = r4323818 + r4323862;
double r4323864 = r4323861 / r4323863;
double r4323865 = r4323860 + r4323864;
double r4323866 = r4323828 * r4323865;
double r4323867 = r4323812 * r4323866;
return r4323867;
}
double f(double z) {
double r4323868 = 2.0;
double r4323869 = atan2(1.0, 0.0);
double r4323870 = r4323868 * r4323869;
double r4323871 = sqrt(r4323870);
double r4323872 = 7.0;
double r4323873 = 1.0;
double r4323874 = z;
double r4323875 = r4323873 - r4323874;
double r4323876 = r4323875 - r4323873;
double r4323877 = r4323872 + r4323876;
double r4323878 = 0.5;
double r4323879 = r4323877 + r4323878;
double r4323880 = r4323878 + r4323876;
double r4323881 = pow(r4323879, r4323880);
double r4323882 = r4323871 * r4323881;
double r4323883 = -r4323879;
double r4323884 = exp(r4323883);
double r4323885 = r4323882 * r4323884;
double r4323886 = 1.5056327351493116e-07;
double r4323887 = 8.0;
double r4323888 = r4323887 + r4323876;
double r4323889 = r4323886 / r4323888;
double r4323890 = 9.984369578019572e-06;
double r4323891 = r4323890 / r4323877;
double r4323892 = -176.6150291621406;
double r4323893 = 4.0;
double r4323894 = r4323876 + r4323893;
double r4323895 = r4323892 / r4323894;
double r4323896 = 771.3234287776531;
double r4323897 = 3.0;
double r4323898 = r4323897 + r4323876;
double r4323899 = r4323896 / r4323898;
double r4323900 = 0.9999999999998099;
double r4323901 = 676.5203681218851;
double r4323902 = r4323876 + r4323873;
double r4323903 = r4323901 / r4323902;
double r4323904 = r4323900 + r4323903;
double r4323905 = -1259.1392167224028;
double r4323906 = r4323876 + r4323868;
double r4323907 = r4323905 / r4323906;
double r4323908 = r4323904 + r4323907;
double r4323909 = r4323899 + r4323908;
double r4323910 = r4323895 + r4323909;
double r4323911 = 12.507343278686905;
double r4323912 = 5.0;
double r4323913 = r4323876 + r4323912;
double r4323914 = r4323911 / r4323913;
double r4323915 = r4323910 + r4323914;
double r4323916 = -0.13857109526572012;
double r4323917 = 6.0;
double r4323918 = r4323917 + r4323876;
double r4323919 = r4323916 / r4323918;
double r4323920 = r4323915 + r4323919;
double r4323921 = r4323891 + r4323920;
double r4323922 = r4323889 + r4323921;
double r4323923 = r4323885 * r4323922;
double r4323924 = r4323869 * r4323874;
double r4323925 = sin(r4323924);
double r4323926 = r4323869 / r4323925;
double r4323927 = r4323923 * r4323926;
return r4323927;
}



Bits error versus z
Results
Initial program 1.8
Final simplification1.8
herbie shell --seed 2019165 +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))))))