\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 r144151 = atan2(1.0, 0.0);
double r144152 = z;
double r144153 = r144151 * r144152;
double r144154 = sin(r144153);
double r144155 = r144151 / r144154;
double r144156 = 2.0;
double r144157 = r144151 * r144156;
double r144158 = sqrt(r144157);
double r144159 = 1.0;
double r144160 = r144159 - r144152;
double r144161 = r144160 - r144159;
double r144162 = 7.0;
double r144163 = r144161 + r144162;
double r144164 = 0.5;
double r144165 = r144163 + r144164;
double r144166 = r144161 + r144164;
double r144167 = pow(r144165, r144166);
double r144168 = r144158 * r144167;
double r144169 = -r144165;
double r144170 = exp(r144169);
double r144171 = r144168 * r144170;
double r144172 = 0.9999999999998099;
double r144173 = 676.5203681218851;
double r144174 = r144161 + r144159;
double r144175 = r144173 / r144174;
double r144176 = r144172 + r144175;
double r144177 = -1259.1392167224028;
double r144178 = r144161 + r144156;
double r144179 = r144177 / r144178;
double r144180 = r144176 + r144179;
double r144181 = 771.3234287776531;
double r144182 = 3.0;
double r144183 = r144161 + r144182;
double r144184 = r144181 / r144183;
double r144185 = r144180 + r144184;
double r144186 = -176.6150291621406;
double r144187 = 4.0;
double r144188 = r144161 + r144187;
double r144189 = r144186 / r144188;
double r144190 = r144185 + r144189;
double r144191 = 12.507343278686905;
double r144192 = 5.0;
double r144193 = r144161 + r144192;
double r144194 = r144191 / r144193;
double r144195 = r144190 + r144194;
double r144196 = -0.13857109526572012;
double r144197 = 6.0;
double r144198 = r144161 + r144197;
double r144199 = r144196 / r144198;
double r144200 = r144195 + r144199;
double r144201 = 9.984369578019572e-06;
double r144202 = r144201 / r144163;
double r144203 = r144200 + r144202;
double r144204 = 1.5056327351493116e-07;
double r144205 = 8.0;
double r144206 = r144161 + r144205;
double r144207 = r144204 / r144206;
double r144208 = r144203 + r144207;
double r144209 = r144171 * r144208;
double r144210 = r144155 * r144209;
return r144210;
}
double f(double z) {
double r144211 = atan2(1.0, 0.0);
double r144212 = z;
double r144213 = r144211 * r144212;
double r144214 = sin(r144213);
double r144215 = r144211 / r144214;
double r144216 = 2.0;
double r144217 = r144211 * r144216;
double r144218 = sqrt(r144217);
double r144219 = 1.0;
double r144220 = r144219 - r144212;
double r144221 = r144220 - r144219;
double r144222 = 7.0;
double r144223 = r144221 + r144222;
double r144224 = 0.5;
double r144225 = r144223 + r144224;
double r144226 = r144221 + r144224;
double r144227 = pow(r144225, r144226);
double r144228 = r144218 * r144227;
double r144229 = -r144225;
double r144230 = exp(r144229);
double r144231 = r144228 * r144230;
double r144232 = 0.9999999999998099;
double r144233 = 676.5203681218851;
double r144234 = r144221 + r144219;
double r144235 = r144233 / r144234;
double r144236 = r144232 + r144235;
double r144237 = -1259.1392167224028;
double r144238 = r144221 + r144216;
double r144239 = r144237 / r144238;
double r144240 = r144236 + r144239;
double r144241 = 771.3234287776531;
double r144242 = 3.0;
double r144243 = r144221 + r144242;
double r144244 = r144241 / r144243;
double r144245 = r144240 + r144244;
double r144246 = -176.6150291621406;
double r144247 = 4.0;
double r144248 = r144221 + r144247;
double r144249 = r144246 / r144248;
double r144250 = r144245 + r144249;
double r144251 = 12.507343278686905;
double r144252 = 5.0;
double r144253 = r144221 + r144252;
double r144254 = r144251 / r144253;
double r144255 = r144250 + r144254;
double r144256 = -0.13857109526572012;
double r144257 = 6.0;
double r144258 = r144221 + r144257;
double r144259 = r144256 / r144258;
double r144260 = r144255 + r144259;
double r144261 = 9.984369578019572e-06;
double r144262 = r144261 / r144223;
double r144263 = r144260 + r144262;
double r144264 = 1.5056327351493116e-07;
double r144265 = 8.0;
double r144266 = r144221 + r144265;
double r144267 = r144264 / r144266;
double r144268 = r144263 + r144267;
double r144269 = r144231 * r144268;
double r144270 = r144215 * r144269;
return r144270;
}



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