\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.99999999999980993 + \frac{676.520368121885099}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.13921672240281}{\left(\left(1 - z\right) - 1\right) + 2}\right) + \frac{771.32342877765313}{\left(\left(1 - z\right) - 1\right) + 3}\right) + \frac{-176.615029162140587}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \frac{12.5073432786869052}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.138571095265720118}{\left(\left(1 - z\right) - 1\right) + 6}\right) + \frac{9.98436957801957158 \cdot 10^{-6}}{\left(\left(1 - z\right) - 1\right) + 7}\right) + \frac{1.50563273514931162 \cdot 10^{-7}}{\left(\left(1 - z\right) - 1\right) + 8}\right)\right)\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.99999999999980993 + \frac{676.520368121885099}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.13921672240281}{\left(\left(1 - z\right) - 1\right) + 2}\right) + \frac{771.32342877765313}{\left(\left(1 - z\right) - 1\right) + 3}\right) + \frac{-176.615029162140587}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \frac{12.5073432786869052}{\mathsf{log1p}\left(\mathsf{expm1}\left(\left(1 - z\right) - 1\right)\right) + 5}\right) + \frac{-0.138571095265720118}{\left(\sqrt[3]{\mathsf{fma}\left(1, 1, -\sqrt[3]{z} \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) + \mathsf{fma}\left(-1, z, z - 1\right)} \cdot \sqrt[3]{\mathsf{fma}\left(1, 1, -\sqrt[3]{z} \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) + \mathsf{fma}\left(-1, z, z - 1\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(1, 1, -\sqrt[3]{z} \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) + \mathsf{fma}\left(-1, z, z - 1\right)} + 6}\right) + \frac{9.98436957801957158 \cdot 10^{-6}}{\left(\left(1 - z\right) - 1\right) + 7}\right) + \frac{1.50563273514931162 \cdot 10^{-7}}{\left(\left(1 - z\right) - 1\right) + 8}\right)\right)double f(double z) {
double r136601 = atan2(1.0, 0.0);
double r136602 = z;
double r136603 = r136601 * r136602;
double r136604 = sin(r136603);
double r136605 = r136601 / r136604;
double r136606 = 2.0;
double r136607 = r136601 * r136606;
double r136608 = sqrt(r136607);
double r136609 = 1.0;
double r136610 = r136609 - r136602;
double r136611 = r136610 - r136609;
double r136612 = 7.0;
double r136613 = r136611 + r136612;
double r136614 = 0.5;
double r136615 = r136613 + r136614;
double r136616 = r136611 + r136614;
double r136617 = pow(r136615, r136616);
double r136618 = r136608 * r136617;
double r136619 = -r136615;
double r136620 = exp(r136619);
double r136621 = r136618 * r136620;
double r136622 = 0.9999999999998099;
double r136623 = 676.5203681218851;
double r136624 = r136611 + r136609;
double r136625 = r136623 / r136624;
double r136626 = r136622 + r136625;
double r136627 = -1259.1392167224028;
double r136628 = r136611 + r136606;
double r136629 = r136627 / r136628;
double r136630 = r136626 + r136629;
double r136631 = 771.3234287776531;
double r136632 = 3.0;
double r136633 = r136611 + r136632;
double r136634 = r136631 / r136633;
double r136635 = r136630 + r136634;
double r136636 = -176.6150291621406;
double r136637 = 4.0;
double r136638 = r136611 + r136637;
double r136639 = r136636 / r136638;
double r136640 = r136635 + r136639;
double r136641 = 12.507343278686905;
double r136642 = 5.0;
double r136643 = r136611 + r136642;
double r136644 = r136641 / r136643;
double r136645 = r136640 + r136644;
double r136646 = -0.13857109526572012;
double r136647 = 6.0;
double r136648 = r136611 + r136647;
double r136649 = r136646 / r136648;
double r136650 = r136645 + r136649;
double r136651 = 9.984369578019572e-06;
double r136652 = r136651 / r136613;
double r136653 = r136650 + r136652;
double r136654 = 1.5056327351493116e-07;
double r136655 = 8.0;
double r136656 = r136611 + r136655;
double r136657 = r136654 / r136656;
double r136658 = r136653 + r136657;
double r136659 = r136621 * r136658;
double r136660 = r136605 * r136659;
return r136660;
}
double f(double z) {
double r136661 = atan2(1.0, 0.0);
double r136662 = z;
double r136663 = r136661 * r136662;
double r136664 = sin(r136663);
double r136665 = r136661 / r136664;
double r136666 = 2.0;
double r136667 = r136661 * r136666;
double r136668 = sqrt(r136667);
double r136669 = 1.0;
double r136670 = r136669 - r136662;
double r136671 = r136670 - r136669;
double r136672 = 7.0;
double r136673 = r136671 + r136672;
double r136674 = 0.5;
double r136675 = r136673 + r136674;
double r136676 = r136671 + r136674;
double r136677 = pow(r136675, r136676);
double r136678 = r136668 * r136677;
double r136679 = -r136675;
double r136680 = exp(r136679);
double r136681 = r136678 * r136680;
double r136682 = 0.9999999999998099;
double r136683 = 676.5203681218851;
double r136684 = r136671 + r136669;
double r136685 = r136683 / r136684;
double r136686 = r136682 + r136685;
double r136687 = -1259.1392167224028;
double r136688 = r136671 + r136666;
double r136689 = r136687 / r136688;
double r136690 = r136686 + r136689;
double r136691 = 771.3234287776531;
double r136692 = 3.0;
double r136693 = r136671 + r136692;
double r136694 = r136691 / r136693;
double r136695 = r136690 + r136694;
double r136696 = -176.6150291621406;
double r136697 = 4.0;
double r136698 = r136671 + r136697;
double r136699 = r136696 / r136698;
double r136700 = r136695 + r136699;
double r136701 = 12.507343278686905;
double r136702 = expm1(r136671);
double r136703 = log1p(r136702);
double r136704 = 5.0;
double r136705 = r136703 + r136704;
double r136706 = r136701 / r136705;
double r136707 = r136700 + r136706;
double r136708 = -0.13857109526572012;
double r136709 = 1.0;
double r136710 = cbrt(r136662);
double r136711 = r136710 * r136710;
double r136712 = r136710 * r136711;
double r136713 = -r136712;
double r136714 = fma(r136709, r136669, r136713);
double r136715 = -1.0;
double r136716 = r136662 - r136669;
double r136717 = fma(r136715, r136662, r136716);
double r136718 = r136714 + r136717;
double r136719 = cbrt(r136718);
double r136720 = r136719 * r136719;
double r136721 = r136720 * r136719;
double r136722 = 6.0;
double r136723 = r136721 + r136722;
double r136724 = r136708 / r136723;
double r136725 = r136707 + r136724;
double r136726 = 9.984369578019572e-06;
double r136727 = r136726 / r136673;
double r136728 = r136725 + r136727;
double r136729 = 1.5056327351493116e-07;
double r136730 = 8.0;
double r136731 = r136671 + r136730;
double r136732 = r136729 / r136731;
double r136733 = r136728 + r136732;
double r136734 = r136681 * r136733;
double r136735 = r136665 * r136734;
return r136735;
}



Bits error versus z
Initial program 1.8
rmApplied log1p-expm1-u1.8
rmApplied add-cube-cbrt1.8
Applied *-un-lft-identity1.8
Applied prod-diff1.8
Applied associate--l+1.8
Simplified1.8
rmApplied add-cube-cbrt1.8
Final simplification1.8
herbie shell --seed 2020056 +o rules:numerics
(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))))))