\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.9999999999998099298181841732002794742584 + \frac{676.5203681218850988443591631948947906494}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.139216722402807135949842631816864014}{\left(\left(1 - z\right) - 1\right) + 2}\right) + \frac{771.3234287776531346025876700878143310547}{\left(\left(1 - z\right) - 1\right) + 3}\right) + \frac{-176.6150291621405870046146446838974952698}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \frac{12.50734327868690520801919774385169148445}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.1385710952657201178173096423051902092993}{\left(\left(1 - z\right) - 1\right) + 6}\right) + \frac{9.984369578019571583242346146658263705831 \cdot 10^{-6}}{\left(\left(1 - z\right) - 1\right) + 7}\right) + \frac{1.505632735149311617592788074479481785772 \cdot 10^{-7}}{\left(\left(1 - z\right) - 1\right) + 8}\right)\right)\sqrt{\pi \cdot 2} \cdot \left(\left(\sqrt{\frac{{\left(\left(7 - z\right) + 0.5\right)}^{\left(0.5 - z\right)}}{e^{\left(7 - z\right) + 0.5}}} \cdot \sqrt{\frac{{\left(\left(7 - z\right) + 0.5\right)}^{\left(0.5 - z\right)}}{e^{\left(7 - z\right) + 0.5}}}\right) \cdot \left(\frac{\pi}{\sin \left(\pi \cdot z\right)} \cdot \left(\frac{-176.6150291621405870046146446838974952698}{4 + \left(-z\right)} + \left(\left(\left(\left(\frac{-0.1385710952657201178173096423051902092993}{6 + \left(-z\right)} + \left(\frac{771.3234287776531346025876700878143310547}{\left(-z\right) + 3} + \left(0.9999999999998099298181841732002794742584 + \frac{676.5203681218850988443591631948947906494}{1 - z}\right)\right)\right) + \frac{-1259.139216722402807135949842631816864014}{2 + \left(-z\right)}\right) + \frac{12.50734327868690520801919774385169148445}{5 + \left(-z\right)}\right) + \left(\frac{1.505632735149311617592788074479481785772 \cdot 10^{-7}}{8 + \left(-z\right)} + \frac{9.984369578019571583242346146658263705831 \cdot 10^{-6}}{7 + \left(-z\right)}\right)\right)\right)\right)\right)double f(double z) {
double r131398 = atan2(1.0, 0.0);
double r131399 = z;
double r131400 = r131398 * r131399;
double r131401 = sin(r131400);
double r131402 = r131398 / r131401;
double r131403 = 2.0;
double r131404 = r131398 * r131403;
double r131405 = sqrt(r131404);
double r131406 = 1.0;
double r131407 = r131406 - r131399;
double r131408 = r131407 - r131406;
double r131409 = 7.0;
double r131410 = r131408 + r131409;
double r131411 = 0.5;
double r131412 = r131410 + r131411;
double r131413 = r131408 + r131411;
double r131414 = pow(r131412, r131413);
double r131415 = r131405 * r131414;
double r131416 = -r131412;
double r131417 = exp(r131416);
double r131418 = r131415 * r131417;
double r131419 = 0.9999999999998099;
double r131420 = 676.5203681218851;
double r131421 = r131408 + r131406;
double r131422 = r131420 / r131421;
double r131423 = r131419 + r131422;
double r131424 = -1259.1392167224028;
double r131425 = r131408 + r131403;
double r131426 = r131424 / r131425;
double r131427 = r131423 + r131426;
double r131428 = 771.3234287776531;
double r131429 = 3.0;
double r131430 = r131408 + r131429;
double r131431 = r131428 / r131430;
double r131432 = r131427 + r131431;
double r131433 = -176.6150291621406;
double r131434 = 4.0;
double r131435 = r131408 + r131434;
double r131436 = r131433 / r131435;
double r131437 = r131432 + r131436;
double r131438 = 12.507343278686905;
double r131439 = 5.0;
double r131440 = r131408 + r131439;
double r131441 = r131438 / r131440;
double r131442 = r131437 + r131441;
double r131443 = -0.13857109526572012;
double r131444 = 6.0;
double r131445 = r131408 + r131444;
double r131446 = r131443 / r131445;
double r131447 = r131442 + r131446;
double r131448 = 9.984369578019572e-06;
double r131449 = r131448 / r131410;
double r131450 = r131447 + r131449;
double r131451 = 1.5056327351493116e-07;
double r131452 = 8.0;
double r131453 = r131408 + r131452;
double r131454 = r131451 / r131453;
double r131455 = r131450 + r131454;
double r131456 = r131418 * r131455;
double r131457 = r131402 * r131456;
return r131457;
}
double f(double z) {
double r131458 = atan2(1.0, 0.0);
double r131459 = 2.0;
double r131460 = r131458 * r131459;
double r131461 = sqrt(r131460);
double r131462 = 7.0;
double r131463 = z;
double r131464 = r131462 - r131463;
double r131465 = 0.5;
double r131466 = r131464 + r131465;
double r131467 = r131465 - r131463;
double r131468 = pow(r131466, r131467);
double r131469 = exp(r131466);
double r131470 = r131468 / r131469;
double r131471 = sqrt(r131470);
double r131472 = r131471 * r131471;
double r131473 = r131458 * r131463;
double r131474 = sin(r131473);
double r131475 = r131458 / r131474;
double r131476 = -176.6150291621406;
double r131477 = 4.0;
double r131478 = -r131463;
double r131479 = r131477 + r131478;
double r131480 = r131476 / r131479;
double r131481 = -0.13857109526572012;
double r131482 = 6.0;
double r131483 = r131482 + r131478;
double r131484 = r131481 / r131483;
double r131485 = 771.3234287776531;
double r131486 = 3.0;
double r131487 = r131478 + r131486;
double r131488 = r131485 / r131487;
double r131489 = 0.9999999999998099;
double r131490 = 676.5203681218851;
double r131491 = 1.0;
double r131492 = r131491 - r131463;
double r131493 = r131490 / r131492;
double r131494 = r131489 + r131493;
double r131495 = r131488 + r131494;
double r131496 = r131484 + r131495;
double r131497 = -1259.1392167224028;
double r131498 = r131459 + r131478;
double r131499 = r131497 / r131498;
double r131500 = r131496 + r131499;
double r131501 = 12.507343278686905;
double r131502 = 5.0;
double r131503 = r131502 + r131478;
double r131504 = r131501 / r131503;
double r131505 = r131500 + r131504;
double r131506 = 1.5056327351493116e-07;
double r131507 = 8.0;
double r131508 = r131507 + r131478;
double r131509 = r131506 / r131508;
double r131510 = 9.984369578019572e-06;
double r131511 = r131462 + r131478;
double r131512 = r131510 / r131511;
double r131513 = r131509 + r131512;
double r131514 = r131505 + r131513;
double r131515 = r131480 + r131514;
double r131516 = r131475 * r131515;
double r131517 = r131472 * r131516;
double r131518 = r131461 * r131517;
return r131518;
}



Bits error versus z
Results
Initial program 1.8
Simplified1.3
rmApplied add-sqr-sqrt0.9
Simplified0.9
Simplified0.9
Final simplification0.9
herbie shell --seed 2019303
(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.99999999999980993 (/ 676.520368121885099 (+ (- (- 1 z) 1) 1))) (/ -1259.13921672240281 (+ (- (- 1 z) 1) 2))) (/ 771.32342877765313 (+ (- (- 1 z) 1) 3))) (/ -176.615029162140587 (+ (- (- 1 z) 1) 4))) (/ 12.5073432786869052 (+ (- (- 1 z) 1) 5))) (/ -0.138571095265720118 (+ (- (- 1 z) 1) 6))) (/ 9.98436957801957158e-6 (+ (- (- 1 z) 1) 7))) (/ 1.50563273514931162e-7 (+ (- (- 1 z) 1) 8))))))