\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{{\left(0.5 + \left(7 - z\right)\right)}^{\left(0.5 - z\right)} \cdot \left(\left(\sqrt[3]{\pi \cdot \sqrt{\pi \cdot 2}} \cdot \sqrt[3]{\pi \cdot \sqrt{\pi \cdot 2}}\right) \cdot \sqrt[3]{\pi \cdot \sqrt{\pi \cdot 2}}\right)}{\frac{\sin \left(\pi \cdot z\right)}{\left(\left(\frac{771.32342877765313}{3 - z} + \left(\left(0.99999999999980993 + \frac{676.520368121885099}{1 - z}\right) + \frac{-1259.13921672240281}{2 - z}\right)\right) + \frac{-176.615029162140587}{4 - z}\right) + \left(\left(\frac{1.50563273514931162 \cdot 10^{-7}}{8 - z} + \left(\frac{9.98436957801957158 \cdot 10^{-6}}{7 - z} + \frac{-0.138571095265720118}{6 - z}\right)\right) + \frac{12.5073432786869052}{5 - z}\right)} \cdot e^{0.5 + \left(7 - z\right)}}double f(double z) {
double r201010 = atan2(1.0, 0.0);
double r201011 = z;
double r201012 = r201010 * r201011;
double r201013 = sin(r201012);
double r201014 = r201010 / r201013;
double r201015 = 2.0;
double r201016 = r201010 * r201015;
double r201017 = sqrt(r201016);
double r201018 = 1.0;
double r201019 = r201018 - r201011;
double r201020 = r201019 - r201018;
double r201021 = 7.0;
double r201022 = r201020 + r201021;
double r201023 = 0.5;
double r201024 = r201022 + r201023;
double r201025 = r201020 + r201023;
double r201026 = pow(r201024, r201025);
double r201027 = r201017 * r201026;
double r201028 = -r201024;
double r201029 = exp(r201028);
double r201030 = r201027 * r201029;
double r201031 = 0.9999999999998099;
double r201032 = 676.5203681218851;
double r201033 = r201020 + r201018;
double r201034 = r201032 / r201033;
double r201035 = r201031 + r201034;
double r201036 = -1259.1392167224028;
double r201037 = r201020 + r201015;
double r201038 = r201036 / r201037;
double r201039 = r201035 + r201038;
double r201040 = 771.3234287776531;
double r201041 = 3.0;
double r201042 = r201020 + r201041;
double r201043 = r201040 / r201042;
double r201044 = r201039 + r201043;
double r201045 = -176.6150291621406;
double r201046 = 4.0;
double r201047 = r201020 + r201046;
double r201048 = r201045 / r201047;
double r201049 = r201044 + r201048;
double r201050 = 12.507343278686905;
double r201051 = 5.0;
double r201052 = r201020 + r201051;
double r201053 = r201050 / r201052;
double r201054 = r201049 + r201053;
double r201055 = -0.13857109526572012;
double r201056 = 6.0;
double r201057 = r201020 + r201056;
double r201058 = r201055 / r201057;
double r201059 = r201054 + r201058;
double r201060 = 9.984369578019572e-06;
double r201061 = r201060 / r201022;
double r201062 = r201059 + r201061;
double r201063 = 1.5056327351493116e-07;
double r201064 = 8.0;
double r201065 = r201020 + r201064;
double r201066 = r201063 / r201065;
double r201067 = r201062 + r201066;
double r201068 = r201030 * r201067;
double r201069 = r201014 * r201068;
return r201069;
}
double f(double z) {
double r201070 = 0.5;
double r201071 = 7.0;
double r201072 = z;
double r201073 = r201071 - r201072;
double r201074 = r201070 + r201073;
double r201075 = r201070 - r201072;
double r201076 = pow(r201074, r201075);
double r201077 = atan2(1.0, 0.0);
double r201078 = 2.0;
double r201079 = r201077 * r201078;
double r201080 = sqrt(r201079);
double r201081 = r201077 * r201080;
double r201082 = cbrt(r201081);
double r201083 = r201082 * r201082;
double r201084 = r201083 * r201082;
double r201085 = r201076 * r201084;
double r201086 = r201077 * r201072;
double r201087 = sin(r201086);
double r201088 = 771.3234287776531;
double r201089 = 3.0;
double r201090 = r201089 - r201072;
double r201091 = r201088 / r201090;
double r201092 = 0.9999999999998099;
double r201093 = 676.5203681218851;
double r201094 = 1.0;
double r201095 = r201094 - r201072;
double r201096 = r201093 / r201095;
double r201097 = r201092 + r201096;
double r201098 = -1259.1392167224028;
double r201099 = r201078 - r201072;
double r201100 = r201098 / r201099;
double r201101 = r201097 + r201100;
double r201102 = r201091 + r201101;
double r201103 = -176.6150291621406;
double r201104 = 4.0;
double r201105 = r201104 - r201072;
double r201106 = r201103 / r201105;
double r201107 = r201102 + r201106;
double r201108 = 1.5056327351493116e-07;
double r201109 = 8.0;
double r201110 = r201109 - r201072;
double r201111 = r201108 / r201110;
double r201112 = 9.984369578019572e-06;
double r201113 = r201112 / r201073;
double r201114 = -0.13857109526572012;
double r201115 = 6.0;
double r201116 = r201115 - r201072;
double r201117 = r201114 / r201116;
double r201118 = r201113 + r201117;
double r201119 = r201111 + r201118;
double r201120 = 12.507343278686905;
double r201121 = 5.0;
double r201122 = r201121 - r201072;
double r201123 = r201120 / r201122;
double r201124 = r201119 + r201123;
double r201125 = r201107 + r201124;
double r201126 = r201087 / r201125;
double r201127 = exp(r201074);
double r201128 = r201126 * r201127;
double r201129 = r201085 / r201128;
return r201129;
}



Bits error versus z
Results
Initial program 1.8
Simplified1.5
rmApplied add-cube-cbrt0.5
Final simplification0.5
herbie shell --seed 2020047
(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))))))