\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)\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)double f(double z) {
double r126777 = atan2(1.0, 0.0);
double r126778 = z;
double r126779 = r126777 * r126778;
double r126780 = sin(r126779);
double r126781 = r126777 / r126780;
double r126782 = 2.0;
double r126783 = r126777 * r126782;
double r126784 = sqrt(r126783);
double r126785 = 1.0;
double r126786 = r126785 - r126778;
double r126787 = r126786 - r126785;
double r126788 = 7.0;
double r126789 = r126787 + r126788;
double r126790 = 0.5;
double r126791 = r126789 + r126790;
double r126792 = r126787 + r126790;
double r126793 = pow(r126791, r126792);
double r126794 = r126784 * r126793;
double r126795 = -r126791;
double r126796 = exp(r126795);
double r126797 = r126794 * r126796;
double r126798 = 0.9999999999998099;
double r126799 = 676.5203681218851;
double r126800 = r126787 + r126785;
double r126801 = r126799 / r126800;
double r126802 = r126798 + r126801;
double r126803 = -1259.1392167224028;
double r126804 = r126787 + r126782;
double r126805 = r126803 / r126804;
double r126806 = r126802 + r126805;
double r126807 = 771.3234287776531;
double r126808 = 3.0;
double r126809 = r126787 + r126808;
double r126810 = r126807 / r126809;
double r126811 = r126806 + r126810;
double r126812 = -176.6150291621406;
double r126813 = 4.0;
double r126814 = r126787 + r126813;
double r126815 = r126812 / r126814;
double r126816 = r126811 + r126815;
double r126817 = 12.507343278686905;
double r126818 = 5.0;
double r126819 = r126787 + r126818;
double r126820 = r126817 / r126819;
double r126821 = r126816 + r126820;
double r126822 = -0.13857109526572012;
double r126823 = 6.0;
double r126824 = r126787 + r126823;
double r126825 = r126822 / r126824;
double r126826 = r126821 + r126825;
double r126827 = 9.984369578019572e-06;
double r126828 = r126827 / r126789;
double r126829 = r126826 + r126828;
double r126830 = 1.5056327351493116e-07;
double r126831 = 8.0;
double r126832 = r126787 + r126831;
double r126833 = r126830 / r126832;
double r126834 = r126829 + r126833;
double r126835 = r126797 * r126834;
double r126836 = r126781 * r126835;
return r126836;
}
double f(double z) {
double r126837 = atan2(1.0, 0.0);
double r126838 = z;
double r126839 = r126837 * r126838;
double r126840 = sin(r126839);
double r126841 = r126837 / r126840;
double r126842 = 2.0;
double r126843 = r126837 * r126842;
double r126844 = sqrt(r126843);
double r126845 = 1.0;
double r126846 = r126845 - r126838;
double r126847 = r126846 - r126845;
double r126848 = 7.0;
double r126849 = r126847 + r126848;
double r126850 = 0.5;
double r126851 = r126849 + r126850;
double r126852 = r126847 + r126850;
double r126853 = pow(r126851, r126852);
double r126854 = r126844 * r126853;
double r126855 = -r126851;
double r126856 = exp(r126855);
double r126857 = r126854 * r126856;
double r126858 = 0.9999999999998099;
double r126859 = 676.5203681218851;
double r126860 = r126847 + r126845;
double r126861 = r126859 / r126860;
double r126862 = r126858 + r126861;
double r126863 = -1259.1392167224028;
double r126864 = r126847 + r126842;
double r126865 = r126863 / r126864;
double r126866 = r126862 + r126865;
double r126867 = 771.3234287776531;
double r126868 = 3.0;
double r126869 = r126847 + r126868;
double r126870 = r126867 / r126869;
double r126871 = r126866 + r126870;
double r126872 = -176.6150291621406;
double r126873 = 4.0;
double r126874 = r126847 + r126873;
double r126875 = r126872 / r126874;
double r126876 = r126871 + r126875;
double r126877 = 12.507343278686905;
double r126878 = 5.0;
double r126879 = r126847 + r126878;
double r126880 = r126877 / r126879;
double r126881 = r126876 + r126880;
double r126882 = -0.13857109526572012;
double r126883 = 6.0;
double r126884 = r126847 + r126883;
double r126885 = r126882 / r126884;
double r126886 = r126881 + r126885;
double r126887 = 9.984369578019572e-06;
double r126888 = r126887 / r126849;
double r126889 = r126886 + r126888;
double r126890 = 1.5056327351493116e-07;
double r126891 = 8.0;
double r126892 = r126847 + r126891;
double r126893 = r126890 / r126892;
double r126894 = r126889 + r126893;
double r126895 = r126857 * r126894;
double r126896 = r126841 * r126895;
return r126896;
}



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