\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{1}{e^{\left(\left(1 - z\right) - -6\right) + 0.5}} \cdot \left(\left(\frac{771.3234287776531}{\left(1 - z\right) + 2} + \frac{\mathsf{fma}\left(\left(\frac{-176.6150291621406}{4 - z}\right), \left(\frac{-176.6150291621406}{4 - z} \cdot \frac{-176.6150291621406}{4 - z}\right), \left(\left(\mathsf{fma}\left(\left(\sqrt[3]{0.9999999999998099 + \frac{676.5203681218851}{1 - z}} \cdot \sqrt[3]{0.9999999999998099 + \frac{676.5203681218851}{1 - z}}\right), \left(\sqrt[3]{0.9999999999998099 + \frac{676.5203681218851}{1 - z}}\right), \left(\frac{-1259.1392167224028}{2 - z}\right)\right) \cdot \left(\frac{-1259.1392167224028}{2 - z} + \left(0.9999999999998099 + \frac{676.5203681218851}{1 - z}\right)\right)\right) \cdot \mathsf{fma}\left(\left(\sqrt[3]{0.9999999999998099 + \frac{676.5203681218851}{1 - z}} \cdot \sqrt[3]{0.9999999999998099 + \frac{676.5203681218851}{1 - z}}\right), \left(\sqrt[3]{0.9999999999998099 + \frac{676.5203681218851}{1 - z}}\right), \left(\frac{-1259.1392167224028}{2 - z}\right)\right)\right)\right)}{\mathsf{fma}\left(\left(\frac{676.5203681218851}{1 - z} + \left(0.9999999999998099 + \frac{-1259.1392167224028}{\left(1 - z\right) + 1}\right)\right), \left(\frac{676.5203681218851}{1 - z} + \left(0.9999999999998099 + \frac{-1259.1392167224028}{\left(1 - z\right) + 1}\right)\right), \left(\left(\frac{-176.6150291621406}{4 - z} - \left(\frac{676.5203681218851}{1 - z} + \left(0.9999999999998099 + \frac{-1259.1392167224028}{\left(1 - z\right) + 1}\right)\right)\right) \cdot \frac{-176.6150291621406}{4 - z}\right)\right)}\right) + \left(\left(\frac{12.507343278686905}{6 - \left(1 + z\right)} + \frac{-0.13857109526572012}{7 - \left(1 + z\right)}\right) + \left(\frac{9.984369578019572 \cdot 10^{-06}}{\left(1 - z\right) - -6} + \frac{1.5056327351493116 \cdot 10^{-07}}{9 - \left(1 + z\right)}\right)\right)\right)\right) \cdot \left(\frac{\pi}{\sin \left(\pi \cdot z\right)} \cdot \left({\left(\left(\left(1 - z\right) - -6\right) + 0.5\right)}^{\left(1 - \left(\left(1 + z\right) - 0.5\right)\right)} \cdot \left(\sqrt{\pi} \cdot \sqrt{2}\right)\right)\right)double f(double z) {
double r25610818 = atan2(1.0, 0.0);
double r25610819 = z;
double r25610820 = r25610818 * r25610819;
double r25610821 = sin(r25610820);
double r25610822 = r25610818 / r25610821;
double r25610823 = 2.0;
double r25610824 = r25610818 * r25610823;
double r25610825 = sqrt(r25610824);
double r25610826 = 1.0;
double r25610827 = r25610826 - r25610819;
double r25610828 = r25610827 - r25610826;
double r25610829 = 7.0;
double r25610830 = r25610828 + r25610829;
double r25610831 = 0.5;
double r25610832 = r25610830 + r25610831;
double r25610833 = r25610828 + r25610831;
double r25610834 = pow(r25610832, r25610833);
double r25610835 = r25610825 * r25610834;
double r25610836 = -r25610832;
double r25610837 = exp(r25610836);
double r25610838 = r25610835 * r25610837;
double r25610839 = 0.9999999999998099;
double r25610840 = 676.5203681218851;
double r25610841 = r25610828 + r25610826;
double r25610842 = r25610840 / r25610841;
double r25610843 = r25610839 + r25610842;
double r25610844 = -1259.1392167224028;
double r25610845 = r25610828 + r25610823;
double r25610846 = r25610844 / r25610845;
double r25610847 = r25610843 + r25610846;
double r25610848 = 771.3234287776531;
double r25610849 = 3.0;
double r25610850 = r25610828 + r25610849;
double r25610851 = r25610848 / r25610850;
double r25610852 = r25610847 + r25610851;
double r25610853 = -176.6150291621406;
double r25610854 = 4.0;
double r25610855 = r25610828 + r25610854;
double r25610856 = r25610853 / r25610855;
double r25610857 = r25610852 + r25610856;
double r25610858 = 12.507343278686905;
double r25610859 = 5.0;
double r25610860 = r25610828 + r25610859;
double r25610861 = r25610858 / r25610860;
double r25610862 = r25610857 + r25610861;
double r25610863 = -0.13857109526572012;
double r25610864 = 6.0;
double r25610865 = r25610828 + r25610864;
double r25610866 = r25610863 / r25610865;
double r25610867 = r25610862 + r25610866;
double r25610868 = 9.984369578019572e-06;
double r25610869 = r25610868 / r25610830;
double r25610870 = r25610867 + r25610869;
double r25610871 = 1.5056327351493116e-07;
double r25610872 = 8.0;
double r25610873 = r25610828 + r25610872;
double r25610874 = r25610871 / r25610873;
double r25610875 = r25610870 + r25610874;
double r25610876 = r25610838 * r25610875;
double r25610877 = r25610822 * r25610876;
return r25610877;
}
double f(double z) {
double r25610878 = 1.0;
double r25610879 = z;
double r25610880 = r25610878 - r25610879;
double r25610881 = -6.0;
double r25610882 = r25610880 - r25610881;
double r25610883 = 0.5;
double r25610884 = r25610882 + r25610883;
double r25610885 = exp(r25610884);
double r25610886 = r25610878 / r25610885;
double r25610887 = 771.3234287776531;
double r25610888 = 2.0;
double r25610889 = r25610880 + r25610888;
double r25610890 = r25610887 / r25610889;
double r25610891 = -176.6150291621406;
double r25610892 = 4.0;
double r25610893 = r25610892 - r25610879;
double r25610894 = r25610891 / r25610893;
double r25610895 = r25610894 * r25610894;
double r25610896 = 0.9999999999998099;
double r25610897 = 676.5203681218851;
double r25610898 = r25610897 / r25610880;
double r25610899 = r25610896 + r25610898;
double r25610900 = cbrt(r25610899);
double r25610901 = r25610900 * r25610900;
double r25610902 = -1259.1392167224028;
double r25610903 = r25610888 - r25610879;
double r25610904 = r25610902 / r25610903;
double r25610905 = fma(r25610901, r25610900, r25610904);
double r25610906 = r25610904 + r25610899;
double r25610907 = r25610905 * r25610906;
double r25610908 = r25610907 * r25610905;
double r25610909 = fma(r25610894, r25610895, r25610908);
double r25610910 = r25610880 + r25610878;
double r25610911 = r25610902 / r25610910;
double r25610912 = r25610896 + r25610911;
double r25610913 = r25610898 + r25610912;
double r25610914 = r25610894 - r25610913;
double r25610915 = r25610914 * r25610894;
double r25610916 = fma(r25610913, r25610913, r25610915);
double r25610917 = r25610909 / r25610916;
double r25610918 = r25610890 + r25610917;
double r25610919 = 12.507343278686905;
double r25610920 = 6.0;
double r25610921 = r25610878 + r25610879;
double r25610922 = r25610920 - r25610921;
double r25610923 = r25610919 / r25610922;
double r25610924 = -0.13857109526572012;
double r25610925 = 7.0;
double r25610926 = r25610925 - r25610921;
double r25610927 = r25610924 / r25610926;
double r25610928 = r25610923 + r25610927;
double r25610929 = 9.984369578019572e-06;
double r25610930 = r25610929 / r25610882;
double r25610931 = 1.5056327351493116e-07;
double r25610932 = 9.0;
double r25610933 = r25610932 - r25610921;
double r25610934 = r25610931 / r25610933;
double r25610935 = r25610930 + r25610934;
double r25610936 = r25610928 + r25610935;
double r25610937 = r25610918 + r25610936;
double r25610938 = r25610886 * r25610937;
double r25610939 = atan2(1.0, 0.0);
double r25610940 = r25610939 * r25610879;
double r25610941 = sin(r25610940);
double r25610942 = r25610939 / r25610941;
double r25610943 = r25610921 - r25610883;
double r25610944 = r25610878 - r25610943;
double r25610945 = pow(r25610884, r25610944);
double r25610946 = sqrt(r25610939);
double r25610947 = sqrt(r25610888);
double r25610948 = r25610946 * r25610947;
double r25610949 = r25610945 * r25610948;
double r25610950 = r25610942 * r25610949;
double r25610951 = r25610938 * r25610950;
return r25610951;
}



Bits error versus z
Initial program 1.8
Simplified1.2
rmApplied sqrt-prod0.6
rmApplied flip3-+0.6
Simplified0.6
Simplified0.6
rmApplied add-cube-cbrt0.6
Applied fma-def0.6
rmApplied add-cube-cbrt0.6
Applied fma-def0.6
Final simplification0.6
herbie shell --seed 2019128 +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))))))