\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}{\mathsf{log1p}\left(\mathsf{expm1}\left(\left(1 - z\right) - 1\right)\right) + 5}\right) + \frac{-0.138571095265720118}{\left(\sqrt[3]{\mathsf{fma}\left(1, 1, -\sqrt[3]{z} \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) + \mathsf{fma}\left(-1, z, z - 1\right)} \cdot \sqrt[3]{\mathsf{fma}\left(1, 1, -\sqrt[3]{z} \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) + \mathsf{fma}\left(-1, z, z - 1\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(1, 1, -\sqrt[3]{z} \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) + \mathsf{fma}\left(-1, z, z - 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 r133908 = atan2(1.0, 0.0);
double r133909 = z;
double r133910 = r133908 * r133909;
double r133911 = sin(r133910);
double r133912 = r133908 / r133911;
double r133913 = 2.0;
double r133914 = r133908 * r133913;
double r133915 = sqrt(r133914);
double r133916 = 1.0;
double r133917 = r133916 - r133909;
double r133918 = r133917 - r133916;
double r133919 = 7.0;
double r133920 = r133918 + r133919;
double r133921 = 0.5;
double r133922 = r133920 + r133921;
double r133923 = r133918 + r133921;
double r133924 = pow(r133922, r133923);
double r133925 = r133915 * r133924;
double r133926 = -r133922;
double r133927 = exp(r133926);
double r133928 = r133925 * r133927;
double r133929 = 0.9999999999998099;
double r133930 = 676.5203681218851;
double r133931 = r133918 + r133916;
double r133932 = r133930 / r133931;
double r133933 = r133929 + r133932;
double r133934 = -1259.1392167224028;
double r133935 = r133918 + r133913;
double r133936 = r133934 / r133935;
double r133937 = r133933 + r133936;
double r133938 = 771.3234287776531;
double r133939 = 3.0;
double r133940 = r133918 + r133939;
double r133941 = r133938 / r133940;
double r133942 = r133937 + r133941;
double r133943 = -176.6150291621406;
double r133944 = 4.0;
double r133945 = r133918 + r133944;
double r133946 = r133943 / r133945;
double r133947 = r133942 + r133946;
double r133948 = 12.507343278686905;
double r133949 = 5.0;
double r133950 = r133918 + r133949;
double r133951 = r133948 / r133950;
double r133952 = r133947 + r133951;
double r133953 = -0.13857109526572012;
double r133954 = 6.0;
double r133955 = r133918 + r133954;
double r133956 = r133953 / r133955;
double r133957 = r133952 + r133956;
double r133958 = 9.984369578019572e-06;
double r133959 = r133958 / r133920;
double r133960 = r133957 + r133959;
double r133961 = 1.5056327351493116e-07;
double r133962 = 8.0;
double r133963 = r133918 + r133962;
double r133964 = r133961 / r133963;
double r133965 = r133960 + r133964;
double r133966 = r133928 * r133965;
double r133967 = r133912 * r133966;
return r133967;
}
double f(double z) {
double r133968 = atan2(1.0, 0.0);
double r133969 = z;
double r133970 = r133968 * r133969;
double r133971 = sin(r133970);
double r133972 = r133968 / r133971;
double r133973 = 2.0;
double r133974 = r133968 * r133973;
double r133975 = sqrt(r133974);
double r133976 = 1.0;
double r133977 = r133976 - r133969;
double r133978 = r133977 - r133976;
double r133979 = 7.0;
double r133980 = r133978 + r133979;
double r133981 = 0.5;
double r133982 = r133980 + r133981;
double r133983 = r133978 + r133981;
double r133984 = pow(r133982, r133983);
double r133985 = r133975 * r133984;
double r133986 = -r133982;
double r133987 = exp(r133986);
double r133988 = r133985 * r133987;
double r133989 = 0.9999999999998099;
double r133990 = 676.5203681218851;
double r133991 = r133978 + r133976;
double r133992 = r133990 / r133991;
double r133993 = r133989 + r133992;
double r133994 = -1259.1392167224028;
double r133995 = r133978 + r133973;
double r133996 = r133994 / r133995;
double r133997 = r133993 + r133996;
double r133998 = 771.3234287776531;
double r133999 = 3.0;
double r134000 = r133978 + r133999;
double r134001 = r133998 / r134000;
double r134002 = r133997 + r134001;
double r134003 = -176.6150291621406;
double r134004 = 4.0;
double r134005 = r133978 + r134004;
double r134006 = r134003 / r134005;
double r134007 = r134002 + r134006;
double r134008 = 12.507343278686905;
double r134009 = expm1(r133978);
double r134010 = log1p(r134009);
double r134011 = 5.0;
double r134012 = r134010 + r134011;
double r134013 = r134008 / r134012;
double r134014 = r134007 + r134013;
double r134015 = -0.13857109526572012;
double r134016 = 1.0;
double r134017 = cbrt(r133969);
double r134018 = r134017 * r134017;
double r134019 = r134017 * r134018;
double r134020 = -r134019;
double r134021 = fma(r134016, r133976, r134020);
double r134022 = -1.0;
double r134023 = r133969 - r133976;
double r134024 = fma(r134022, r133969, r134023);
double r134025 = r134021 + r134024;
double r134026 = cbrt(r134025);
double r134027 = r134026 * r134026;
double r134028 = r134027 * r134026;
double r134029 = 6.0;
double r134030 = r134028 + r134029;
double r134031 = r134015 / r134030;
double r134032 = r134014 + r134031;
double r134033 = 9.984369578019572e-06;
double r134034 = r134033 / r133980;
double r134035 = r134032 + r134034;
double r134036 = 1.5056327351493116e-07;
double r134037 = 8.0;
double r134038 = r133978 + r134037;
double r134039 = r134036 / r134038;
double r134040 = r134035 + r134039;
double r134041 = r133988 * r134040;
double r134042 = r133972 * r134041;
return r134042;
}



Bits error versus z
Initial program 1.8
rmApplied log1p-expm1-u1.8
rmApplied add-cube-cbrt1.8
Applied *-un-lft-identity1.8
Applied prod-diff1.8
Applied associate--l+1.8
Simplified1.8
rmApplied add-cube-cbrt1.8
Final simplification1.8
herbie shell --seed 2020056 +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))))))