\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)\left(\left(0.9999999999998099298181841732002794742584 + \left(\frac{676.5203681218850988443591631948947906494}{1 - z} + \frac{-1259.139216722402807135949842631816864014}{\left(\left(1 - z\right) - 1\right) + 2}\right)\right) + \left(\left(\left(\frac{771.3234287776531346025876700878143310547}{\left(\left(1 - z\right) - 1\right) + 3} + \frac{-176.6150291621405870046146446838974952698}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \left(\frac{12.50734327868690520801919774385169148445}{\left(\left(1 - z\right) - 1\right) + 5} + \frac{-0.1385710952657201178173096423051902092993}{\left(\left(1 - z\right) - 1\right) + 6}\right)\right) + \left(\frac{9.984369578019571583242346146658263705831 \cdot 10^{-6}}{\left(\left(1 - z\right) - 1\right) + 7} + \frac{1.505632735149311617592788074479481785772 \cdot 10^{-7}}{\left(\left(1 - z\right) - 1\right) + 8}\right)\right)\right) \cdot \frac{\left(\sqrt{\pi \cdot 2} \cdot {\left(\left(\left(\left(1 - z\right) - 1\right) + 7\right) + 0.5\right)}^{\left(\left(\log \left(\sqrt{\frac{1}{e^{z}}}\right) + \left(-\log \left(\sqrt{e^{z}}\right)\right)\right) + 0.5\right)}\right) \cdot \frac{\pi}{\sin \left(\pi \cdot z\right)}}{e^{\left(\left(\left(1 - z\right) - 1\right) + 7\right) + 0.5}}double f(double z) {
double r7675432 = atan2(1.0, 0.0);
double r7675433 = z;
double r7675434 = r7675432 * r7675433;
double r7675435 = sin(r7675434);
double r7675436 = r7675432 / r7675435;
double r7675437 = 2.0;
double r7675438 = r7675432 * r7675437;
double r7675439 = sqrt(r7675438);
double r7675440 = 1.0;
double r7675441 = r7675440 - r7675433;
double r7675442 = r7675441 - r7675440;
double r7675443 = 7.0;
double r7675444 = r7675442 + r7675443;
double r7675445 = 0.5;
double r7675446 = r7675444 + r7675445;
double r7675447 = r7675442 + r7675445;
double r7675448 = pow(r7675446, r7675447);
double r7675449 = r7675439 * r7675448;
double r7675450 = -r7675446;
double r7675451 = exp(r7675450);
double r7675452 = r7675449 * r7675451;
double r7675453 = 0.9999999999998099;
double r7675454 = 676.5203681218851;
double r7675455 = r7675442 + r7675440;
double r7675456 = r7675454 / r7675455;
double r7675457 = r7675453 + r7675456;
double r7675458 = -1259.1392167224028;
double r7675459 = r7675442 + r7675437;
double r7675460 = r7675458 / r7675459;
double r7675461 = r7675457 + r7675460;
double r7675462 = 771.3234287776531;
double r7675463 = 3.0;
double r7675464 = r7675442 + r7675463;
double r7675465 = r7675462 / r7675464;
double r7675466 = r7675461 + r7675465;
double r7675467 = -176.6150291621406;
double r7675468 = 4.0;
double r7675469 = r7675442 + r7675468;
double r7675470 = r7675467 / r7675469;
double r7675471 = r7675466 + r7675470;
double r7675472 = 12.507343278686905;
double r7675473 = 5.0;
double r7675474 = r7675442 + r7675473;
double r7675475 = r7675472 / r7675474;
double r7675476 = r7675471 + r7675475;
double r7675477 = -0.13857109526572012;
double r7675478 = 6.0;
double r7675479 = r7675442 + r7675478;
double r7675480 = r7675477 / r7675479;
double r7675481 = r7675476 + r7675480;
double r7675482 = 9.984369578019572e-06;
double r7675483 = r7675482 / r7675444;
double r7675484 = r7675481 + r7675483;
double r7675485 = 1.5056327351493116e-07;
double r7675486 = 8.0;
double r7675487 = r7675442 + r7675486;
double r7675488 = r7675485 / r7675487;
double r7675489 = r7675484 + r7675488;
double r7675490 = r7675452 * r7675489;
double r7675491 = r7675436 * r7675490;
return r7675491;
}
double f(double z) {
double r7675492 = 0.9999999999998099;
double r7675493 = 676.5203681218851;
double r7675494 = 1.0;
double r7675495 = z;
double r7675496 = r7675494 - r7675495;
double r7675497 = r7675493 / r7675496;
double r7675498 = -1259.1392167224028;
double r7675499 = r7675496 - r7675494;
double r7675500 = 2.0;
double r7675501 = r7675499 + r7675500;
double r7675502 = r7675498 / r7675501;
double r7675503 = r7675497 + r7675502;
double r7675504 = r7675492 + r7675503;
double r7675505 = 771.3234287776531;
double r7675506 = 3.0;
double r7675507 = r7675499 + r7675506;
double r7675508 = r7675505 / r7675507;
double r7675509 = -176.6150291621406;
double r7675510 = 4.0;
double r7675511 = r7675499 + r7675510;
double r7675512 = r7675509 / r7675511;
double r7675513 = r7675508 + r7675512;
double r7675514 = 12.507343278686905;
double r7675515 = 5.0;
double r7675516 = r7675499 + r7675515;
double r7675517 = r7675514 / r7675516;
double r7675518 = -0.13857109526572012;
double r7675519 = 6.0;
double r7675520 = r7675499 + r7675519;
double r7675521 = r7675518 / r7675520;
double r7675522 = r7675517 + r7675521;
double r7675523 = r7675513 + r7675522;
double r7675524 = 9.984369578019572e-06;
double r7675525 = 7.0;
double r7675526 = r7675499 + r7675525;
double r7675527 = r7675524 / r7675526;
double r7675528 = 1.5056327351493116e-07;
double r7675529 = 8.0;
double r7675530 = r7675499 + r7675529;
double r7675531 = r7675528 / r7675530;
double r7675532 = r7675527 + r7675531;
double r7675533 = r7675523 + r7675532;
double r7675534 = r7675504 + r7675533;
double r7675535 = atan2(1.0, 0.0);
double r7675536 = r7675535 * r7675500;
double r7675537 = sqrt(r7675536);
double r7675538 = 0.5;
double r7675539 = r7675526 + r7675538;
double r7675540 = 1.0;
double r7675541 = exp(r7675495);
double r7675542 = r7675540 / r7675541;
double r7675543 = sqrt(r7675542);
double r7675544 = log(r7675543);
double r7675545 = sqrt(r7675541);
double r7675546 = log(r7675545);
double r7675547 = -r7675546;
double r7675548 = r7675544 + r7675547;
double r7675549 = r7675548 + r7675538;
double r7675550 = pow(r7675539, r7675549);
double r7675551 = r7675537 * r7675550;
double r7675552 = r7675535 * r7675495;
double r7675553 = sin(r7675552);
double r7675554 = r7675535 / r7675553;
double r7675555 = r7675551 * r7675554;
double r7675556 = exp(r7675539);
double r7675557 = r7675555 / r7675556;
double r7675558 = r7675534 * r7675557;
return r7675558;
}



Bits error versus z
Results
Initial program 1.8
Simplified0.6
rmApplied add-log-exp0.6
Applied add-log-exp0.6
Applied add-log-exp0.6
Applied diff-log0.6
Applied diff-log0.6
Simplified0.6
rmApplied add-sqr-sqrt0.6
Applied log-prod0.6
rmApplied sqrt-div0.6
Applied log-div0.6
Simplified0.6
Final simplification0.6
herbie shell --seed 2019174 +o rules:numerics
(FPCore (z)
:name "Jmat.Real.gamma, branch z less than 0.5"
(* (/ PI (sin (* PI z))) (* (* (* (sqrt (* PI 2.0)) (pow (+ (+ (- (- 1.0 z) 1.0) 7.0) 0.5) (+ (- (- 1.0 z) 1.0) 0.5))) (exp (- (+ (+ (- (- 1.0 z) 1.0) 7.0) 0.5)))) (+ (+ (+ (+ (+ (+ (+ (+ 0.9999999999998099 (/ 676.5203681218851 (+ (- (- 1.0 z) 1.0) 1.0))) (/ -1259.1392167224028 (+ (- (- 1.0 z) 1.0) 2.0))) (/ 771.3234287776531 (+ (- (- 1.0 z) 1.0) 3.0))) (/ -176.6150291621406 (+ (- (- 1.0 z) 1.0) 4.0))) (/ 12.507343278686905 (+ (- (- 1.0 z) 1.0) 5.0))) (/ -0.13857109526572012 (+ (- (- 1.0 z) 1.0) 6.0))) (/ 9.984369578019572e-06 (+ (- (- 1.0 z) 1.0) 7.0))) (/ 1.5056327351493116e-07 (+ (- (- 1.0 z) 1.0) 8.0))))))