\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 r124218 = atan2(1.0, 0.0);
double r124219 = z;
double r124220 = r124218 * r124219;
double r124221 = sin(r124220);
double r124222 = r124218 / r124221;
double r124223 = 2.0;
double r124224 = r124218 * r124223;
double r124225 = sqrt(r124224);
double r124226 = 1.0;
double r124227 = r124226 - r124219;
double r124228 = r124227 - r124226;
double r124229 = 7.0;
double r124230 = r124228 + r124229;
double r124231 = 0.5;
double r124232 = r124230 + r124231;
double r124233 = r124228 + r124231;
double r124234 = pow(r124232, r124233);
double r124235 = r124225 * r124234;
double r124236 = -r124232;
double r124237 = exp(r124236);
double r124238 = r124235 * r124237;
double r124239 = 0.9999999999998099;
double r124240 = 676.5203681218851;
double r124241 = r124228 + r124226;
double r124242 = r124240 / r124241;
double r124243 = r124239 + r124242;
double r124244 = -1259.1392167224028;
double r124245 = r124228 + r124223;
double r124246 = r124244 / r124245;
double r124247 = r124243 + r124246;
double r124248 = 771.3234287776531;
double r124249 = 3.0;
double r124250 = r124228 + r124249;
double r124251 = r124248 / r124250;
double r124252 = r124247 + r124251;
double r124253 = -176.6150291621406;
double r124254 = 4.0;
double r124255 = r124228 + r124254;
double r124256 = r124253 / r124255;
double r124257 = r124252 + r124256;
double r124258 = 12.507343278686905;
double r124259 = 5.0;
double r124260 = r124228 + r124259;
double r124261 = r124258 / r124260;
double r124262 = r124257 + r124261;
double r124263 = -0.13857109526572012;
double r124264 = 6.0;
double r124265 = r124228 + r124264;
double r124266 = r124263 / r124265;
double r124267 = r124262 + r124266;
double r124268 = 9.984369578019572e-06;
double r124269 = r124268 / r124230;
double r124270 = r124267 + r124269;
double r124271 = 1.5056327351493116e-07;
double r124272 = 8.0;
double r124273 = r124228 + r124272;
double r124274 = r124271 / r124273;
double r124275 = r124270 + r124274;
double r124276 = r124238 * r124275;
double r124277 = r124222 * r124276;
return r124277;
}
double f(double z) {
double r124278 = atan2(1.0, 0.0);
double r124279 = z;
double r124280 = r124278 * r124279;
double r124281 = sin(r124280);
double r124282 = r124278 / r124281;
double r124283 = 2.0;
double r124284 = r124278 * r124283;
double r124285 = sqrt(r124284);
double r124286 = 1.0;
double r124287 = r124286 - r124279;
double r124288 = r124287 - r124286;
double r124289 = 7.0;
double r124290 = r124288 + r124289;
double r124291 = 0.5;
double r124292 = r124290 + r124291;
double r124293 = r124288 + r124291;
double r124294 = pow(r124292, r124293);
double r124295 = r124285 * r124294;
double r124296 = -r124292;
double r124297 = exp(r124296);
double r124298 = r124295 * r124297;
double r124299 = 0.9999999999998099;
double r124300 = 676.5203681218851;
double r124301 = r124288 + r124286;
double r124302 = r124300 / r124301;
double r124303 = r124299 + r124302;
double r124304 = -1259.1392167224028;
double r124305 = r124288 + r124283;
double r124306 = r124304 / r124305;
double r124307 = r124303 + r124306;
double r124308 = 771.3234287776531;
double r124309 = 3.0;
double r124310 = r124288 + r124309;
double r124311 = r124308 / r124310;
double r124312 = r124307 + r124311;
double r124313 = -176.6150291621406;
double r124314 = 4.0;
double r124315 = r124288 + r124314;
double r124316 = r124313 / r124315;
double r124317 = r124312 + r124316;
double r124318 = 12.507343278686905;
double r124319 = 5.0;
double r124320 = r124288 + r124319;
double r124321 = r124318 / r124320;
double r124322 = r124317 + r124321;
double r124323 = -0.13857109526572012;
double r124324 = 6.0;
double r124325 = r124288 + r124324;
double r124326 = r124323 / r124325;
double r124327 = r124322 + r124326;
double r124328 = 9.984369578019572e-06;
double r124329 = r124328 / r124290;
double r124330 = r124327 + r124329;
double r124331 = 1.5056327351493116e-07;
double r124332 = 8.0;
double r124333 = r124288 + r124332;
double r124334 = r124331 / r124333;
double r124335 = r124330 + r124334;
double r124336 = r124298 * r124335;
double r124337 = r124282 * r124336;
return r124337;
}



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