\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(\frac{\pi}{\sin \left(z \cdot \pi\right)} \cdot \left({\left(\left(-z\right) + \left(0.5 + 7\right)\right)}^{\left(\left(-z\right) + 0.5\right)} \cdot \sqrt{2 \cdot \pi}\right)\right) \cdot \log \left(e^{\frac{\frac{9.984369578019571583242346146658263705831 \cdot 10^{-6}}{7 + \left(-z\right)} + \left(\left(\left(\frac{771.3234287776531346025876700878143310547}{\left(-z\right) + 3} + \left(0.9999999999998099298181841732002794742584 + \frac{676.5203681218850988443591631948947906494}{1 - z}\right)\right) + \left(\frac{-176.6150291621405870046146446838974952698}{\left(-z\right) + 4} + \frac{-1259.139216722402807135949842631816864014}{2 + \left(-z\right)}\right)\right) + \left(\left(\frac{-0.1385710952657201178173096423051902092993}{\left(-z\right) + 6} + \frac{12.50734327868690520801919774385169148445}{\left(-z\right) + 5}\right) + \frac{1.505632735149311617592788074479481785772 \cdot 10^{-7}}{\left(-z\right) + 8}\right)\right)}{e^{0.5 + 7}} \cdot e^{z}}\right)double f(double z) {
double r6905618 = atan2(1.0, 0.0);
double r6905619 = z;
double r6905620 = r6905618 * r6905619;
double r6905621 = sin(r6905620);
double r6905622 = r6905618 / r6905621;
double r6905623 = 2.0;
double r6905624 = r6905618 * r6905623;
double r6905625 = sqrt(r6905624);
double r6905626 = 1.0;
double r6905627 = r6905626 - r6905619;
double r6905628 = r6905627 - r6905626;
double r6905629 = 7.0;
double r6905630 = r6905628 + r6905629;
double r6905631 = 0.5;
double r6905632 = r6905630 + r6905631;
double r6905633 = r6905628 + r6905631;
double r6905634 = pow(r6905632, r6905633);
double r6905635 = r6905625 * r6905634;
double r6905636 = -r6905632;
double r6905637 = exp(r6905636);
double r6905638 = r6905635 * r6905637;
double r6905639 = 0.9999999999998099;
double r6905640 = 676.5203681218851;
double r6905641 = r6905628 + r6905626;
double r6905642 = r6905640 / r6905641;
double r6905643 = r6905639 + r6905642;
double r6905644 = -1259.1392167224028;
double r6905645 = r6905628 + r6905623;
double r6905646 = r6905644 / r6905645;
double r6905647 = r6905643 + r6905646;
double r6905648 = 771.3234287776531;
double r6905649 = 3.0;
double r6905650 = r6905628 + r6905649;
double r6905651 = r6905648 / r6905650;
double r6905652 = r6905647 + r6905651;
double r6905653 = -176.6150291621406;
double r6905654 = 4.0;
double r6905655 = r6905628 + r6905654;
double r6905656 = r6905653 / r6905655;
double r6905657 = r6905652 + r6905656;
double r6905658 = 12.507343278686905;
double r6905659 = 5.0;
double r6905660 = r6905628 + r6905659;
double r6905661 = r6905658 / r6905660;
double r6905662 = r6905657 + r6905661;
double r6905663 = -0.13857109526572012;
double r6905664 = 6.0;
double r6905665 = r6905628 + r6905664;
double r6905666 = r6905663 / r6905665;
double r6905667 = r6905662 + r6905666;
double r6905668 = 9.984369578019572e-06;
double r6905669 = r6905668 / r6905630;
double r6905670 = r6905667 + r6905669;
double r6905671 = 1.5056327351493116e-07;
double r6905672 = 8.0;
double r6905673 = r6905628 + r6905672;
double r6905674 = r6905671 / r6905673;
double r6905675 = r6905670 + r6905674;
double r6905676 = r6905638 * r6905675;
double r6905677 = r6905622 * r6905676;
return r6905677;
}
double f(double z) {
double r6905678 = atan2(1.0, 0.0);
double r6905679 = z;
double r6905680 = r6905679 * r6905678;
double r6905681 = sin(r6905680);
double r6905682 = r6905678 / r6905681;
double r6905683 = -r6905679;
double r6905684 = 0.5;
double r6905685 = 7.0;
double r6905686 = r6905684 + r6905685;
double r6905687 = r6905683 + r6905686;
double r6905688 = r6905683 + r6905684;
double r6905689 = pow(r6905687, r6905688);
double r6905690 = 2.0;
double r6905691 = r6905690 * r6905678;
double r6905692 = sqrt(r6905691);
double r6905693 = r6905689 * r6905692;
double r6905694 = r6905682 * r6905693;
double r6905695 = 9.984369578019572e-06;
double r6905696 = r6905685 + r6905683;
double r6905697 = r6905695 / r6905696;
double r6905698 = 771.3234287776531;
double r6905699 = 3.0;
double r6905700 = r6905683 + r6905699;
double r6905701 = r6905698 / r6905700;
double r6905702 = 0.9999999999998099;
double r6905703 = 676.5203681218851;
double r6905704 = 1.0;
double r6905705 = r6905704 - r6905679;
double r6905706 = r6905703 / r6905705;
double r6905707 = r6905702 + r6905706;
double r6905708 = r6905701 + r6905707;
double r6905709 = -176.6150291621406;
double r6905710 = 4.0;
double r6905711 = r6905683 + r6905710;
double r6905712 = r6905709 / r6905711;
double r6905713 = -1259.1392167224028;
double r6905714 = r6905690 + r6905683;
double r6905715 = r6905713 / r6905714;
double r6905716 = r6905712 + r6905715;
double r6905717 = r6905708 + r6905716;
double r6905718 = -0.13857109526572012;
double r6905719 = 6.0;
double r6905720 = r6905683 + r6905719;
double r6905721 = r6905718 / r6905720;
double r6905722 = 12.507343278686905;
double r6905723 = 5.0;
double r6905724 = r6905683 + r6905723;
double r6905725 = r6905722 / r6905724;
double r6905726 = r6905721 + r6905725;
double r6905727 = 1.5056327351493116e-07;
double r6905728 = 8.0;
double r6905729 = r6905683 + r6905728;
double r6905730 = r6905727 / r6905729;
double r6905731 = r6905726 + r6905730;
double r6905732 = r6905717 + r6905731;
double r6905733 = r6905697 + r6905732;
double r6905734 = exp(r6905686);
double r6905735 = r6905733 / r6905734;
double r6905736 = exp(r6905679);
double r6905737 = r6905735 * r6905736;
double r6905738 = exp(r6905737);
double r6905739 = log(r6905738);
double r6905740 = r6905694 * r6905739;
return r6905740;
}



Bits error versus z
Results
Initial program 1.8
Simplified2.2
rmApplied add-log-exp0.6
rmApplied unsub-neg0.6
Applied exp-diff0.6
Applied associate-/r/0.6
Final simplification0.6
herbie shell --seed 2019172 +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))))))