\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)\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}{\mathsf{fma}\left(\sqrt[3]{\mathsf{fma}\left(\sqrt[3]{1} \cdot \sqrt[3]{1}, \sqrt[3]{1}, -\sqrt[3]{z} \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\sqrt[3]{1} \cdot \sqrt[3]{1}, \sqrt[3]{1}, -\sqrt[3]{z} \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right)}, \sqrt[3]{\mathsf{fma}\left(\sqrt[3]{1} \cdot \sqrt[3]{1}, \sqrt[3]{1}, -\sqrt[3]{z} \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right)}, \mathsf{fma}\left(-1, z, z - 1\right)\right) + 5}\right) + \frac{-0.1385710952657201178173096423051902092993}{\mathsf{log1p}\left(\mathsf{expm1}\left(\left(1 - z\right) - 1\right)\right) + 6}\right) + \frac{9.984369578019571583242346146658263705831 \cdot 10^{-6}}{\left(\sqrt[3]{\left(1 - z\right) - 1} \cdot \sqrt[3]{\left(1 - z\right) - 1}\right) \cdot \sqrt[3]{\left(1 - z\right) - 1} + 7}\right) + \frac{1.505632735149311617592788074479481785772 \cdot 10^{-7}}{\left(\left(1 - z\right) - 1\right) + 8}\right)\right)double f(double z) {
double r147713 = atan2(1.0, 0.0);
double r147714 = z;
double r147715 = r147713 * r147714;
double r147716 = sin(r147715);
double r147717 = r147713 / r147716;
double r147718 = 2.0;
double r147719 = r147713 * r147718;
double r147720 = sqrt(r147719);
double r147721 = 1.0;
double r147722 = r147721 - r147714;
double r147723 = r147722 - r147721;
double r147724 = 7.0;
double r147725 = r147723 + r147724;
double r147726 = 0.5;
double r147727 = r147725 + r147726;
double r147728 = r147723 + r147726;
double r147729 = pow(r147727, r147728);
double r147730 = r147720 * r147729;
double r147731 = -r147727;
double r147732 = exp(r147731);
double r147733 = r147730 * r147732;
double r147734 = 0.9999999999998099;
double r147735 = 676.5203681218851;
double r147736 = r147723 + r147721;
double r147737 = r147735 / r147736;
double r147738 = r147734 + r147737;
double r147739 = -1259.1392167224028;
double r147740 = r147723 + r147718;
double r147741 = r147739 / r147740;
double r147742 = r147738 + r147741;
double r147743 = 771.3234287776531;
double r147744 = 3.0;
double r147745 = r147723 + r147744;
double r147746 = r147743 / r147745;
double r147747 = r147742 + r147746;
double r147748 = -176.6150291621406;
double r147749 = 4.0;
double r147750 = r147723 + r147749;
double r147751 = r147748 / r147750;
double r147752 = r147747 + r147751;
double r147753 = 12.507343278686905;
double r147754 = 5.0;
double r147755 = r147723 + r147754;
double r147756 = r147753 / r147755;
double r147757 = r147752 + r147756;
double r147758 = -0.13857109526572012;
double r147759 = 6.0;
double r147760 = r147723 + r147759;
double r147761 = r147758 / r147760;
double r147762 = r147757 + r147761;
double r147763 = 9.984369578019572e-06;
double r147764 = r147763 / r147725;
double r147765 = r147762 + r147764;
double r147766 = 1.5056327351493116e-07;
double r147767 = 8.0;
double r147768 = r147723 + r147767;
double r147769 = r147766 / r147768;
double r147770 = r147765 + r147769;
double r147771 = r147733 * r147770;
double r147772 = r147717 * r147771;
return r147772;
}
double f(double z) {
double r147773 = atan2(1.0, 0.0);
double r147774 = z;
double r147775 = r147773 * r147774;
double r147776 = sin(r147775);
double r147777 = r147773 / r147776;
double r147778 = 2.0;
double r147779 = r147773 * r147778;
double r147780 = sqrt(r147779);
double r147781 = 1.0;
double r147782 = r147781 - r147774;
double r147783 = r147782 - r147781;
double r147784 = 7.0;
double r147785 = r147783 + r147784;
double r147786 = 0.5;
double r147787 = r147785 + r147786;
double r147788 = r147783 + r147786;
double r147789 = pow(r147787, r147788);
double r147790 = r147780 * r147789;
double r147791 = -r147787;
double r147792 = exp(r147791);
double r147793 = r147790 * r147792;
double r147794 = 0.9999999999998099;
double r147795 = 676.5203681218851;
double r147796 = r147783 + r147781;
double r147797 = r147795 / r147796;
double r147798 = r147794 + r147797;
double r147799 = -1259.1392167224028;
double r147800 = r147783 + r147778;
double r147801 = r147799 / r147800;
double r147802 = r147798 + r147801;
double r147803 = 771.3234287776531;
double r147804 = 3.0;
double r147805 = r147783 + r147804;
double r147806 = r147803 / r147805;
double r147807 = r147802 + r147806;
double r147808 = -176.6150291621406;
double r147809 = 4.0;
double r147810 = r147783 + r147809;
double r147811 = r147808 / r147810;
double r147812 = r147807 + r147811;
double r147813 = 12.507343278686905;
double r147814 = cbrt(r147781);
double r147815 = r147814 * r147814;
double r147816 = cbrt(r147774);
double r147817 = r147816 * r147816;
double r147818 = r147816 * r147817;
double r147819 = -r147818;
double r147820 = fma(r147815, r147814, r147819);
double r147821 = cbrt(r147820);
double r147822 = r147821 * r147821;
double r147823 = -1.0;
double r147824 = r147774 - r147781;
double r147825 = fma(r147823, r147774, r147824);
double r147826 = fma(r147822, r147821, r147825);
double r147827 = 5.0;
double r147828 = r147826 + r147827;
double r147829 = r147813 / r147828;
double r147830 = r147812 + r147829;
double r147831 = -0.13857109526572012;
double r147832 = expm1(r147783);
double r147833 = log1p(r147832);
double r147834 = 6.0;
double r147835 = r147833 + r147834;
double r147836 = r147831 / r147835;
double r147837 = r147830 + r147836;
double r147838 = 9.984369578019572e-06;
double r147839 = cbrt(r147783);
double r147840 = r147839 * r147839;
double r147841 = r147840 * r147839;
double r147842 = r147841 + r147784;
double r147843 = r147838 / r147842;
double r147844 = r147837 + r147843;
double r147845 = 1.5056327351493116e-07;
double r147846 = 8.0;
double r147847 = r147783 + r147846;
double r147848 = r147845 / r147847;
double r147849 = r147844 + r147848;
double r147850 = r147793 * r147849;
double r147851 = r147777 * r147850;
return r147851;
}



Bits error versus z
Initial program 1.8
rmApplied add-cube-cbrt1.8
Applied add-cube-cbrt1.8
Applied prod-diff1.8
Applied associate--l+1.8
Simplified1.8
rmApplied log1p-expm1-u1.8
rmApplied add-cube-cbrt1.8
Applied fma-def1.8
rmApplied add-cube-cbrt1.8
Final simplification1.8
herbie shell --seed 2019353 +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))))))