\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 r190935 = atan2(1.0, 0.0);
double r190936 = z;
double r190937 = r190935 * r190936;
double r190938 = sin(r190937);
double r190939 = r190935 / r190938;
double r190940 = 2.0;
double r190941 = r190935 * r190940;
double r190942 = sqrt(r190941);
double r190943 = 1.0;
double r190944 = r190943 - r190936;
double r190945 = r190944 - r190943;
double r190946 = 7.0;
double r190947 = r190945 + r190946;
double r190948 = 0.5;
double r190949 = r190947 + r190948;
double r190950 = r190945 + r190948;
double r190951 = pow(r190949, r190950);
double r190952 = r190942 * r190951;
double r190953 = -r190949;
double r190954 = exp(r190953);
double r190955 = r190952 * r190954;
double r190956 = 0.9999999999998099;
double r190957 = 676.5203681218851;
double r190958 = r190945 + r190943;
double r190959 = r190957 / r190958;
double r190960 = r190956 + r190959;
double r190961 = -1259.1392167224028;
double r190962 = r190945 + r190940;
double r190963 = r190961 / r190962;
double r190964 = r190960 + r190963;
double r190965 = 771.3234287776531;
double r190966 = 3.0;
double r190967 = r190945 + r190966;
double r190968 = r190965 / r190967;
double r190969 = r190964 + r190968;
double r190970 = -176.6150291621406;
double r190971 = 4.0;
double r190972 = r190945 + r190971;
double r190973 = r190970 / r190972;
double r190974 = r190969 + r190973;
double r190975 = 12.507343278686905;
double r190976 = 5.0;
double r190977 = r190945 + r190976;
double r190978 = r190975 / r190977;
double r190979 = r190974 + r190978;
double r190980 = -0.13857109526572012;
double r190981 = 6.0;
double r190982 = r190945 + r190981;
double r190983 = r190980 / r190982;
double r190984 = r190979 + r190983;
double r190985 = 9.984369578019572e-06;
double r190986 = r190985 / r190947;
double r190987 = r190984 + r190986;
double r190988 = 1.5056327351493116e-07;
double r190989 = 8.0;
double r190990 = r190945 + r190989;
double r190991 = r190988 / r190990;
double r190992 = r190987 + r190991;
double r190993 = r190955 * r190992;
double r190994 = r190939 * r190993;
return r190994;
}
double f(double z) {
double r190995 = atan2(1.0, 0.0);
double r190996 = z;
double r190997 = r190995 * r190996;
double r190998 = sin(r190997);
double r190999 = r190995 / r190998;
double r191000 = 2.0;
double r191001 = r190995 * r191000;
double r191002 = sqrt(r191001);
double r191003 = 1.0;
double r191004 = r191003 - r190996;
double r191005 = r191004 - r191003;
double r191006 = 7.0;
double r191007 = r191005 + r191006;
double r191008 = 0.5;
double r191009 = r191007 + r191008;
double r191010 = r191005 + r191008;
double r191011 = pow(r191009, r191010);
double r191012 = r191002 * r191011;
double r191013 = -r191009;
double r191014 = exp(r191013);
double r191015 = r191012 * r191014;
double r191016 = 0.9999999999998099;
double r191017 = 676.5203681218851;
double r191018 = r191005 + r191003;
double r191019 = r191017 / r191018;
double r191020 = r191016 + r191019;
double r191021 = -1259.1392167224028;
double r191022 = r191005 + r191000;
double r191023 = r191021 / r191022;
double r191024 = r191020 + r191023;
double r191025 = 771.3234287776531;
double r191026 = 3.0;
double r191027 = r191005 + r191026;
double r191028 = r191025 / r191027;
double r191029 = r191024 + r191028;
double r191030 = -176.6150291621406;
double r191031 = 4.0;
double r191032 = r191005 + r191031;
double r191033 = r191030 / r191032;
double r191034 = r191029 + r191033;
double r191035 = 12.507343278686905;
double r191036 = 5.0;
double r191037 = r191005 + r191036;
double r191038 = r191035 / r191037;
double r191039 = r191034 + r191038;
double r191040 = -0.13857109526572012;
double r191041 = 6.0;
double r191042 = r191005 + r191041;
double r191043 = r191040 / r191042;
double r191044 = r191039 + r191043;
double r191045 = 9.984369578019572e-06;
double r191046 = r191045 / r191007;
double r191047 = r191044 + r191046;
double r191048 = 1.5056327351493116e-07;
double r191049 = 8.0;
double r191050 = r191005 + r191049;
double r191051 = r191048 / r191050;
double r191052 = r191047 + r191051;
double r191053 = r191015 * r191052;
double r191054 = r190999 * r191053;
return r191054;
}



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