\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(\sqrt{\pi \cdot 2} \cdot \left(e^{-\left(7 - z\right)} \cdot \frac{{\left(\left(7 - z\right) + 0.5\right)}^{\left(0.5 - z\right)}}{e^{0.5}}\right)\right) \cdot \frac{\pi}{\sin \left(\pi \cdot z\right)}\right) \cdot \left(\left(\left(\left(0.9999999999998099298181841732002794742584 + \left(\frac{771.3234287776531346025876700878143310547}{3 - z} + \frac{676.5203681218850988443591631948947906494}{1 - z}\right)\right) + \left(\frac{-0.1385710952657201178173096423051902092993}{6 - z} + \left(\frac{-1259.139216722402807135949842631816864014}{2 - z} + \frac{12.50734327868690520801919774385169148445}{5 - z}\right)\right)\right) + \frac{1.505632735149311617592788074479481785772 \cdot 10^{-7}}{8 - z}\right) + \left(\frac{9.984369578019571583242346146658263705831 \cdot 10^{-6}}{7 - z} + \frac{-176.6150291621405870046146446838974952698}{4 - z}\right)\right)double f(double z) {
double r130531 = atan2(1.0, 0.0);
double r130532 = z;
double r130533 = r130531 * r130532;
double r130534 = sin(r130533);
double r130535 = r130531 / r130534;
double r130536 = 2.0;
double r130537 = r130531 * r130536;
double r130538 = sqrt(r130537);
double r130539 = 1.0;
double r130540 = r130539 - r130532;
double r130541 = r130540 - r130539;
double r130542 = 7.0;
double r130543 = r130541 + r130542;
double r130544 = 0.5;
double r130545 = r130543 + r130544;
double r130546 = r130541 + r130544;
double r130547 = pow(r130545, r130546);
double r130548 = r130538 * r130547;
double r130549 = -r130545;
double r130550 = exp(r130549);
double r130551 = r130548 * r130550;
double r130552 = 0.9999999999998099;
double r130553 = 676.5203681218851;
double r130554 = r130541 + r130539;
double r130555 = r130553 / r130554;
double r130556 = r130552 + r130555;
double r130557 = -1259.1392167224028;
double r130558 = r130541 + r130536;
double r130559 = r130557 / r130558;
double r130560 = r130556 + r130559;
double r130561 = 771.3234287776531;
double r130562 = 3.0;
double r130563 = r130541 + r130562;
double r130564 = r130561 / r130563;
double r130565 = r130560 + r130564;
double r130566 = -176.6150291621406;
double r130567 = 4.0;
double r130568 = r130541 + r130567;
double r130569 = r130566 / r130568;
double r130570 = r130565 + r130569;
double r130571 = 12.507343278686905;
double r130572 = 5.0;
double r130573 = r130541 + r130572;
double r130574 = r130571 / r130573;
double r130575 = r130570 + r130574;
double r130576 = -0.13857109526572012;
double r130577 = 6.0;
double r130578 = r130541 + r130577;
double r130579 = r130576 / r130578;
double r130580 = r130575 + r130579;
double r130581 = 9.984369578019572e-06;
double r130582 = r130581 / r130543;
double r130583 = r130580 + r130582;
double r130584 = 1.5056327351493116e-07;
double r130585 = 8.0;
double r130586 = r130541 + r130585;
double r130587 = r130584 / r130586;
double r130588 = r130583 + r130587;
double r130589 = r130551 * r130588;
double r130590 = r130535 * r130589;
return r130590;
}
double f(double z) {
double r130591 = atan2(1.0, 0.0);
double r130592 = 2.0;
double r130593 = r130591 * r130592;
double r130594 = sqrt(r130593);
double r130595 = 7.0;
double r130596 = z;
double r130597 = r130595 - r130596;
double r130598 = -r130597;
double r130599 = exp(r130598);
double r130600 = 0.5;
double r130601 = r130597 + r130600;
double r130602 = r130600 - r130596;
double r130603 = pow(r130601, r130602);
double r130604 = exp(r130600);
double r130605 = r130603 / r130604;
double r130606 = r130599 * r130605;
double r130607 = r130594 * r130606;
double r130608 = r130591 * r130596;
double r130609 = sin(r130608);
double r130610 = r130591 / r130609;
double r130611 = r130607 * r130610;
double r130612 = 0.9999999999998099;
double r130613 = 771.3234287776531;
double r130614 = 3.0;
double r130615 = r130614 - r130596;
double r130616 = r130613 / r130615;
double r130617 = 676.5203681218851;
double r130618 = 1.0;
double r130619 = r130618 - r130596;
double r130620 = r130617 / r130619;
double r130621 = r130616 + r130620;
double r130622 = r130612 + r130621;
double r130623 = -0.13857109526572012;
double r130624 = 6.0;
double r130625 = r130624 - r130596;
double r130626 = r130623 / r130625;
double r130627 = -1259.1392167224028;
double r130628 = r130592 - r130596;
double r130629 = r130627 / r130628;
double r130630 = 12.507343278686905;
double r130631 = 5.0;
double r130632 = r130631 - r130596;
double r130633 = r130630 / r130632;
double r130634 = r130629 + r130633;
double r130635 = r130626 + r130634;
double r130636 = r130622 + r130635;
double r130637 = 1.5056327351493116e-07;
double r130638 = 8.0;
double r130639 = r130638 - r130596;
double r130640 = r130637 / r130639;
double r130641 = r130636 + r130640;
double r130642 = 9.984369578019572e-06;
double r130643 = r130642 / r130597;
double r130644 = -176.6150291621406;
double r130645 = 4.0;
double r130646 = r130645 - r130596;
double r130647 = r130644 / r130646;
double r130648 = r130643 + r130647;
double r130649 = r130641 + r130648;
double r130650 = r130611 * r130649;
return r130650;
}



Bits error versus z
Results
Initial program 1.8
Simplified1.3
Simplified0.6
rmApplied exp-sum0.6
Applied *-un-lft-identity0.6
Applied unpow-prod-down0.6
Applied times-frac0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019326
(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))))))