\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 r131341 = atan2(1.0, 0.0);
double r131342 = z;
double r131343 = r131341 * r131342;
double r131344 = sin(r131343);
double r131345 = r131341 / r131344;
double r131346 = 2.0;
double r131347 = r131341 * r131346;
double r131348 = sqrt(r131347);
double r131349 = 1.0;
double r131350 = r131349 - r131342;
double r131351 = r131350 - r131349;
double r131352 = 7.0;
double r131353 = r131351 + r131352;
double r131354 = 0.5;
double r131355 = r131353 + r131354;
double r131356 = r131351 + r131354;
double r131357 = pow(r131355, r131356);
double r131358 = r131348 * r131357;
double r131359 = -r131355;
double r131360 = exp(r131359);
double r131361 = r131358 * r131360;
double r131362 = 0.9999999999998099;
double r131363 = 676.5203681218851;
double r131364 = r131351 + r131349;
double r131365 = r131363 / r131364;
double r131366 = r131362 + r131365;
double r131367 = -1259.1392167224028;
double r131368 = r131351 + r131346;
double r131369 = r131367 / r131368;
double r131370 = r131366 + r131369;
double r131371 = 771.3234287776531;
double r131372 = 3.0;
double r131373 = r131351 + r131372;
double r131374 = r131371 / r131373;
double r131375 = r131370 + r131374;
double r131376 = -176.6150291621406;
double r131377 = 4.0;
double r131378 = r131351 + r131377;
double r131379 = r131376 / r131378;
double r131380 = r131375 + r131379;
double r131381 = 12.507343278686905;
double r131382 = 5.0;
double r131383 = r131351 + r131382;
double r131384 = r131381 / r131383;
double r131385 = r131380 + r131384;
double r131386 = -0.13857109526572012;
double r131387 = 6.0;
double r131388 = r131351 + r131387;
double r131389 = r131386 / r131388;
double r131390 = r131385 + r131389;
double r131391 = 9.984369578019572e-06;
double r131392 = r131391 / r131353;
double r131393 = r131390 + r131392;
double r131394 = 1.5056327351493116e-07;
double r131395 = 8.0;
double r131396 = r131351 + r131395;
double r131397 = r131394 / r131396;
double r131398 = r131393 + r131397;
double r131399 = r131361 * r131398;
double r131400 = r131345 * r131399;
return r131400;
}
double f(double z) {
double r131401 = atan2(1.0, 0.0);
double r131402 = z;
double r131403 = r131401 * r131402;
double r131404 = sin(r131403);
double r131405 = r131401 / r131404;
double r131406 = 2.0;
double r131407 = r131401 * r131406;
double r131408 = sqrt(r131407);
double r131409 = 1.0;
double r131410 = r131409 - r131402;
double r131411 = r131410 - r131409;
double r131412 = 7.0;
double r131413 = r131411 + r131412;
double r131414 = 0.5;
double r131415 = r131413 + r131414;
double r131416 = r131411 + r131414;
double r131417 = pow(r131415, r131416);
double r131418 = r131408 * r131417;
double r131419 = -r131415;
double r131420 = exp(r131419);
double r131421 = r131418 * r131420;
double r131422 = 0.9999999999998099;
double r131423 = 676.5203681218851;
double r131424 = r131411 + r131409;
double r131425 = r131423 / r131424;
double r131426 = r131422 + r131425;
double r131427 = -1259.1392167224028;
double r131428 = r131411 + r131406;
double r131429 = r131427 / r131428;
double r131430 = r131426 + r131429;
double r131431 = 771.3234287776531;
double r131432 = 3.0;
double r131433 = r131411 + r131432;
double r131434 = r131431 / r131433;
double r131435 = r131430 + r131434;
double r131436 = -176.6150291621406;
double r131437 = 4.0;
double r131438 = r131411 + r131437;
double r131439 = r131436 / r131438;
double r131440 = r131435 + r131439;
double r131441 = 12.507343278686905;
double r131442 = 5.0;
double r131443 = r131411 + r131442;
double r131444 = r131441 / r131443;
double r131445 = r131440 + r131444;
double r131446 = -0.13857109526572012;
double r131447 = 6.0;
double r131448 = r131411 + r131447;
double r131449 = r131446 / r131448;
double r131450 = r131445 + r131449;
double r131451 = 9.984369578019572e-06;
double r131452 = r131451 / r131413;
double r131453 = r131450 + r131452;
double r131454 = 1.5056327351493116e-07;
double r131455 = 8.0;
double r131456 = r131411 + r131455;
double r131457 = r131454 / r131456;
double r131458 = r131453 + r131457;
double r131459 = r131421 * r131458;
double r131460 = r131405 * r131459;
return r131460;
}



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