\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 r129068 = atan2(1.0, 0.0);
double r129069 = z;
double r129070 = r129068 * r129069;
double r129071 = sin(r129070);
double r129072 = r129068 / r129071;
double r129073 = 2.0;
double r129074 = r129068 * r129073;
double r129075 = sqrt(r129074);
double r129076 = 1.0;
double r129077 = r129076 - r129069;
double r129078 = r129077 - r129076;
double r129079 = 7.0;
double r129080 = r129078 + r129079;
double r129081 = 0.5;
double r129082 = r129080 + r129081;
double r129083 = r129078 + r129081;
double r129084 = pow(r129082, r129083);
double r129085 = r129075 * r129084;
double r129086 = -r129082;
double r129087 = exp(r129086);
double r129088 = r129085 * r129087;
double r129089 = 0.9999999999998099;
double r129090 = 676.5203681218851;
double r129091 = r129078 + r129076;
double r129092 = r129090 / r129091;
double r129093 = r129089 + r129092;
double r129094 = -1259.1392167224028;
double r129095 = r129078 + r129073;
double r129096 = r129094 / r129095;
double r129097 = r129093 + r129096;
double r129098 = 771.3234287776531;
double r129099 = 3.0;
double r129100 = r129078 + r129099;
double r129101 = r129098 / r129100;
double r129102 = r129097 + r129101;
double r129103 = -176.6150291621406;
double r129104 = 4.0;
double r129105 = r129078 + r129104;
double r129106 = r129103 / r129105;
double r129107 = r129102 + r129106;
double r129108 = 12.507343278686905;
double r129109 = 5.0;
double r129110 = r129078 + r129109;
double r129111 = r129108 / r129110;
double r129112 = r129107 + r129111;
double r129113 = -0.13857109526572012;
double r129114 = 6.0;
double r129115 = r129078 + r129114;
double r129116 = r129113 / r129115;
double r129117 = r129112 + r129116;
double r129118 = 9.984369578019572e-06;
double r129119 = r129118 / r129080;
double r129120 = r129117 + r129119;
double r129121 = 1.5056327351493116e-07;
double r129122 = 8.0;
double r129123 = r129078 + r129122;
double r129124 = r129121 / r129123;
double r129125 = r129120 + r129124;
double r129126 = r129088 * r129125;
double r129127 = r129072 * r129126;
return r129127;
}
double f(double z) {
double r129128 = atan2(1.0, 0.0);
double r129129 = z;
double r129130 = r129128 * r129129;
double r129131 = sin(r129130);
double r129132 = r129128 / r129131;
double r129133 = 2.0;
double r129134 = r129128 * r129133;
double r129135 = sqrt(r129134);
double r129136 = 1.0;
double r129137 = r129136 - r129129;
double r129138 = r129137 - r129136;
double r129139 = 7.0;
double r129140 = r129138 + r129139;
double r129141 = 0.5;
double r129142 = r129140 + r129141;
double r129143 = r129138 + r129141;
double r129144 = pow(r129142, r129143);
double r129145 = r129135 * r129144;
double r129146 = -r129142;
double r129147 = exp(r129146);
double r129148 = r129145 * r129147;
double r129149 = 0.9999999999998099;
double r129150 = 676.5203681218851;
double r129151 = r129138 + r129136;
double r129152 = r129150 / r129151;
double r129153 = r129149 + r129152;
double r129154 = -1259.1392167224028;
double r129155 = r129138 + r129133;
double r129156 = r129154 / r129155;
double r129157 = r129153 + r129156;
double r129158 = 771.3234287776531;
double r129159 = 3.0;
double r129160 = r129138 + r129159;
double r129161 = r129158 / r129160;
double r129162 = r129157 + r129161;
double r129163 = -176.6150291621406;
double r129164 = 4.0;
double r129165 = r129138 + r129164;
double r129166 = r129163 / r129165;
double r129167 = r129162 + r129166;
double r129168 = 12.507343278686905;
double r129169 = 5.0;
double r129170 = r129138 + r129169;
double r129171 = r129168 / r129170;
double r129172 = r129167 + r129171;
double r129173 = -0.13857109526572012;
double r129174 = 6.0;
double r129175 = r129138 + r129174;
double r129176 = r129173 / r129175;
double r129177 = r129172 + r129176;
double r129178 = 9.984369578019572e-06;
double r129179 = r129178 / r129140;
double r129180 = r129177 + r129179;
double r129181 = 1.5056327351493116e-07;
double r129182 = 8.0;
double r129183 = r129138 + r129182;
double r129184 = r129181 / r129183;
double r129185 = r129180 + r129184;
double r129186 = r129148 * r129185;
double r129187 = r129132 * r129186;
return r129187;
}



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