\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.9999999999998099 + \frac{676.5203681218851}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.1392167224028}{\left(\left(1 - z\right) - 1\right) + 2}\right) + \frac{771.3234287776531}{\left(\left(1 - z\right) - 1\right) + 3}\right) + \frac{-176.6150291621406}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \frac{12.507343278686905}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.13857109526572012}{\left(\left(1 - z\right) - 1\right) + 6}\right) + \frac{9.984369578019572 \cdot 10^{-06}}{\left(\left(1 - z\right) - 1\right) + 7}\right) + \frac{1.5056327351493116 \cdot 10^{-07}}{\left(\left(1 - z\right) - 1\right) + 8}\right)\right)\frac{\sqrt{\sqrt{\pi \cdot 2}} \cdot \left(\sqrt{\sqrt{\pi \cdot 2}} \cdot \pi\right)}{\sin \left(z \cdot \pi\right)} \cdot \left(\frac{\left(\frac{9.984369578019572 \cdot 10^{-06}}{7 - z} + \left(\frac{1.5056327351493116 \cdot 10^{-07}}{8 - z} + \left(\frac{-0.13857109526572012}{6 - z} + \frac{12.507343278686905}{\left(6 - z\right) + -1}\right)\right)\right) + \left(\frac{771.3234287776531}{3 - z} + \log \left(e^{\left(\left(\frac{-1259.1392167224028}{2 - z} + 0.9999999999998099\right) + \frac{676.5203681218851}{1 - z}\right) + \frac{-176.6150291621406}{4 - z}}\right)\right)}{e^{\left(7 - z\right) + 0.5}} \cdot {\left(\left(7 - z\right) + 0.5\right)}^{\left(0.5 + \left(-z\right)\right)}\right)double f(double z) {
double r6167390 = atan2(1.0, 0.0);
double r6167391 = z;
double r6167392 = r6167390 * r6167391;
double r6167393 = sin(r6167392);
double r6167394 = r6167390 / r6167393;
double r6167395 = 2.0;
double r6167396 = r6167390 * r6167395;
double r6167397 = sqrt(r6167396);
double r6167398 = 1.0;
double r6167399 = r6167398 - r6167391;
double r6167400 = r6167399 - r6167398;
double r6167401 = 7.0;
double r6167402 = r6167400 + r6167401;
double r6167403 = 0.5;
double r6167404 = r6167402 + r6167403;
double r6167405 = r6167400 + r6167403;
double r6167406 = pow(r6167404, r6167405);
double r6167407 = r6167397 * r6167406;
double r6167408 = -r6167404;
double r6167409 = exp(r6167408);
double r6167410 = r6167407 * r6167409;
double r6167411 = 0.9999999999998099;
double r6167412 = 676.5203681218851;
double r6167413 = r6167400 + r6167398;
double r6167414 = r6167412 / r6167413;
double r6167415 = r6167411 + r6167414;
double r6167416 = -1259.1392167224028;
double r6167417 = r6167400 + r6167395;
double r6167418 = r6167416 / r6167417;
double r6167419 = r6167415 + r6167418;
double r6167420 = 771.3234287776531;
double r6167421 = 3.0;
double r6167422 = r6167400 + r6167421;
double r6167423 = r6167420 / r6167422;
double r6167424 = r6167419 + r6167423;
double r6167425 = -176.6150291621406;
double r6167426 = 4.0;
double r6167427 = r6167400 + r6167426;
double r6167428 = r6167425 / r6167427;
double r6167429 = r6167424 + r6167428;
double r6167430 = 12.507343278686905;
double r6167431 = 5.0;
double r6167432 = r6167400 + r6167431;
double r6167433 = r6167430 / r6167432;
double r6167434 = r6167429 + r6167433;
double r6167435 = -0.13857109526572012;
double r6167436 = 6.0;
double r6167437 = r6167400 + r6167436;
double r6167438 = r6167435 / r6167437;
double r6167439 = r6167434 + r6167438;
double r6167440 = 9.984369578019572e-06;
double r6167441 = r6167440 / r6167402;
double r6167442 = r6167439 + r6167441;
double r6167443 = 1.5056327351493116e-07;
double r6167444 = 8.0;
double r6167445 = r6167400 + r6167444;
double r6167446 = r6167443 / r6167445;
double r6167447 = r6167442 + r6167446;
double r6167448 = r6167410 * r6167447;
double r6167449 = r6167394 * r6167448;
return r6167449;
}
double f(double z) {
double r6167450 = atan2(1.0, 0.0);
double r6167451 = 2.0;
double r6167452 = r6167450 * r6167451;
double r6167453 = sqrt(r6167452);
double r6167454 = sqrt(r6167453);
double r6167455 = r6167454 * r6167450;
double r6167456 = r6167454 * r6167455;
double r6167457 = z;
double r6167458 = r6167457 * r6167450;
double r6167459 = sin(r6167458);
double r6167460 = r6167456 / r6167459;
double r6167461 = 9.984369578019572e-06;
double r6167462 = 7.0;
double r6167463 = r6167462 - r6167457;
double r6167464 = r6167461 / r6167463;
double r6167465 = 1.5056327351493116e-07;
double r6167466 = 8.0;
double r6167467 = r6167466 - r6167457;
double r6167468 = r6167465 / r6167467;
double r6167469 = -0.13857109526572012;
double r6167470 = 6.0;
double r6167471 = r6167470 - r6167457;
double r6167472 = r6167469 / r6167471;
double r6167473 = 12.507343278686905;
double r6167474 = -1.0;
double r6167475 = r6167471 + r6167474;
double r6167476 = r6167473 / r6167475;
double r6167477 = r6167472 + r6167476;
double r6167478 = r6167468 + r6167477;
double r6167479 = r6167464 + r6167478;
double r6167480 = 771.3234287776531;
double r6167481 = 3.0;
double r6167482 = r6167481 - r6167457;
double r6167483 = r6167480 / r6167482;
double r6167484 = -1259.1392167224028;
double r6167485 = r6167451 - r6167457;
double r6167486 = r6167484 / r6167485;
double r6167487 = 0.9999999999998099;
double r6167488 = r6167486 + r6167487;
double r6167489 = 676.5203681218851;
double r6167490 = 1.0;
double r6167491 = r6167490 - r6167457;
double r6167492 = r6167489 / r6167491;
double r6167493 = r6167488 + r6167492;
double r6167494 = -176.6150291621406;
double r6167495 = 4.0;
double r6167496 = r6167495 - r6167457;
double r6167497 = r6167494 / r6167496;
double r6167498 = r6167493 + r6167497;
double r6167499 = exp(r6167498);
double r6167500 = log(r6167499);
double r6167501 = r6167483 + r6167500;
double r6167502 = r6167479 + r6167501;
double r6167503 = 0.5;
double r6167504 = r6167463 + r6167503;
double r6167505 = exp(r6167504);
double r6167506 = r6167502 / r6167505;
double r6167507 = -r6167457;
double r6167508 = r6167503 + r6167507;
double r6167509 = pow(r6167504, r6167508);
double r6167510 = r6167506 * r6167509;
double r6167511 = r6167460 * r6167510;
return r6167511;
}



Bits error versus z
Results
Initial program 1.8
Simplified0.4
rmApplied add-log-exp0.6
Applied add-log-exp0.6
Applied sum-log0.6
Applied add-log-exp0.6
Applied add-log-exp0.7
Applied sum-log0.7
Applied sum-log0.7
Simplified0.9
rmApplied add-sqr-sqrt0.9
Applied associate-*r*0.5
Final simplification0.5
herbie shell --seed 2019163
(FPCore (z)
:name "Jmat.Real.gamma, branch z less than 0.5"
(* (/ 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))))))