\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 r126918 = atan2(1.0, 0.0);
double r126919 = z;
double r126920 = r126918 * r126919;
double r126921 = sin(r126920);
double r126922 = r126918 / r126921;
double r126923 = 2.0;
double r126924 = r126918 * r126923;
double r126925 = sqrt(r126924);
double r126926 = 1.0;
double r126927 = r126926 - r126919;
double r126928 = r126927 - r126926;
double r126929 = 7.0;
double r126930 = r126928 + r126929;
double r126931 = 0.5;
double r126932 = r126930 + r126931;
double r126933 = r126928 + r126931;
double r126934 = pow(r126932, r126933);
double r126935 = r126925 * r126934;
double r126936 = -r126932;
double r126937 = exp(r126936);
double r126938 = r126935 * r126937;
double r126939 = 0.9999999999998099;
double r126940 = 676.5203681218851;
double r126941 = r126928 + r126926;
double r126942 = r126940 / r126941;
double r126943 = r126939 + r126942;
double r126944 = -1259.1392167224028;
double r126945 = r126928 + r126923;
double r126946 = r126944 / r126945;
double r126947 = r126943 + r126946;
double r126948 = 771.3234287776531;
double r126949 = 3.0;
double r126950 = r126928 + r126949;
double r126951 = r126948 / r126950;
double r126952 = r126947 + r126951;
double r126953 = -176.6150291621406;
double r126954 = 4.0;
double r126955 = r126928 + r126954;
double r126956 = r126953 / r126955;
double r126957 = r126952 + r126956;
double r126958 = 12.507343278686905;
double r126959 = 5.0;
double r126960 = r126928 + r126959;
double r126961 = r126958 / r126960;
double r126962 = r126957 + r126961;
double r126963 = -0.13857109526572012;
double r126964 = 6.0;
double r126965 = r126928 + r126964;
double r126966 = r126963 / r126965;
double r126967 = r126962 + r126966;
double r126968 = 9.984369578019572e-06;
double r126969 = r126968 / r126930;
double r126970 = r126967 + r126969;
double r126971 = 1.5056327351493116e-07;
double r126972 = 8.0;
double r126973 = r126928 + r126972;
double r126974 = r126971 / r126973;
double r126975 = r126970 + r126974;
double r126976 = r126938 * r126975;
double r126977 = r126922 * r126976;
return r126977;
}
double f(double z) {
double r126978 = atan2(1.0, 0.0);
double r126979 = z;
double r126980 = r126978 * r126979;
double r126981 = sin(r126980);
double r126982 = r126978 / r126981;
double r126983 = 2.0;
double r126984 = r126978 * r126983;
double r126985 = sqrt(r126984);
double r126986 = 1.0;
double r126987 = r126986 - r126979;
double r126988 = r126987 - r126986;
double r126989 = 7.0;
double r126990 = r126988 + r126989;
double r126991 = 0.5;
double r126992 = r126990 + r126991;
double r126993 = r126988 + r126991;
double r126994 = pow(r126992, r126993);
double r126995 = r126985 * r126994;
double r126996 = -r126992;
double r126997 = exp(r126996);
double r126998 = r126995 * r126997;
double r126999 = 0.9999999999998099;
double r127000 = 676.5203681218851;
double r127001 = r126988 + r126986;
double r127002 = r127000 / r127001;
double r127003 = r126999 + r127002;
double r127004 = -1259.1392167224028;
double r127005 = r126988 + r126983;
double r127006 = r127004 / r127005;
double r127007 = r127003 + r127006;
double r127008 = 771.3234287776531;
double r127009 = 3.0;
double r127010 = r126988 + r127009;
double r127011 = r127008 / r127010;
double r127012 = r127007 + r127011;
double r127013 = -176.6150291621406;
double r127014 = 4.0;
double r127015 = r126988 + r127014;
double r127016 = r127013 / r127015;
double r127017 = r127012 + r127016;
double r127018 = 12.507343278686905;
double r127019 = 5.0;
double r127020 = r126988 + r127019;
double r127021 = r127018 / r127020;
double r127022 = r127017 + r127021;
double r127023 = -0.13857109526572012;
double r127024 = 6.0;
double r127025 = r126988 + r127024;
double r127026 = r127023 / r127025;
double r127027 = r127022 + r127026;
double r127028 = 9.984369578019572e-06;
double r127029 = r127028 / r126990;
double r127030 = r127027 + r127029;
double r127031 = 1.5056327351493116e-07;
double r127032 = 8.0;
double r127033 = r126988 + r127032;
double r127034 = r127031 / r127033;
double r127035 = r127030 + r127034;
double r127036 = r126998 * r127035;
double r127037 = r126982 * r127036;
return r127037;
}



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