\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)\left(\left(\left(\left(\frac{676.5203681218851}{1 - z} + 0.9999999999998099\right) + \frac{771.3234287776531}{\left(1 - z\right) + 2}\right) + \left(\frac{-1259.1392167224028}{2 - z} + \frac{-176.6150291621406}{4 - z}\right)\right) + \left(\left(\frac{1.5056327351493116 \cdot 10^{-07}}{8 - z} + \left(\frac{-0.13857109526572012}{6 - z} + \frac{9.984369578019572 \cdot 10^{-06}}{7 - z}\right)\right) + \frac{12.507343278686905}{\left(-z\right) - -5}\right)\right) \cdot \left(\left(\sqrt{\pi \cdot 2} \cdot \frac{\pi}{\sin \left(\pi \cdot z\right)}\right) \cdot \frac{{\left({\left(\left(7 - z\right) + 0.5\right)}^{\left(0.5 + \left(-z\right)\right)}\right)}^{\frac{1}{3}} \cdot \sqrt[3]{{\left(\left(7 - z\right) + 0.5\right)}^{\left(0.5 + \left(-z\right)\right)}}}{\frac{e^{\left(7 - z\right) + 0.5}}{\sqrt[3]{{\left(\left(7 - z\right) + 0.5\right)}^{\left(0.5 + \left(-z\right)\right)}}}}\right)double f(double z) {
double r3592666 = atan2(1.0, 0.0);
double r3592667 = z;
double r3592668 = r3592666 * r3592667;
double r3592669 = sin(r3592668);
double r3592670 = r3592666 / r3592669;
double r3592671 = 2.0;
double r3592672 = r3592666 * r3592671;
double r3592673 = sqrt(r3592672);
double r3592674 = 1.0;
double r3592675 = r3592674 - r3592667;
double r3592676 = r3592675 - r3592674;
double r3592677 = 7.0;
double r3592678 = r3592676 + r3592677;
double r3592679 = 0.5;
double r3592680 = r3592678 + r3592679;
double r3592681 = r3592676 + r3592679;
double r3592682 = pow(r3592680, r3592681);
double r3592683 = r3592673 * r3592682;
double r3592684 = -r3592680;
double r3592685 = exp(r3592684);
double r3592686 = r3592683 * r3592685;
double r3592687 = 0.9999999999998099;
double r3592688 = 676.5203681218851;
double r3592689 = r3592676 + r3592674;
double r3592690 = r3592688 / r3592689;
double r3592691 = r3592687 + r3592690;
double r3592692 = -1259.1392167224028;
double r3592693 = r3592676 + r3592671;
double r3592694 = r3592692 / r3592693;
double r3592695 = r3592691 + r3592694;
double r3592696 = 771.3234287776531;
double r3592697 = 3.0;
double r3592698 = r3592676 + r3592697;
double r3592699 = r3592696 / r3592698;
double r3592700 = r3592695 + r3592699;
double r3592701 = -176.6150291621406;
double r3592702 = 4.0;
double r3592703 = r3592676 + r3592702;
double r3592704 = r3592701 / r3592703;
double r3592705 = r3592700 + r3592704;
double r3592706 = 12.507343278686905;
double r3592707 = 5.0;
double r3592708 = r3592676 + r3592707;
double r3592709 = r3592706 / r3592708;
double r3592710 = r3592705 + r3592709;
double r3592711 = -0.13857109526572012;
double r3592712 = 6.0;
double r3592713 = r3592676 + r3592712;
double r3592714 = r3592711 / r3592713;
double r3592715 = r3592710 + r3592714;
double r3592716 = 9.984369578019572e-06;
double r3592717 = r3592716 / r3592678;
double r3592718 = r3592715 + r3592717;
double r3592719 = 1.5056327351493116e-07;
double r3592720 = 8.0;
double r3592721 = r3592676 + r3592720;
double r3592722 = r3592719 / r3592721;
double r3592723 = r3592718 + r3592722;
double r3592724 = r3592686 * r3592723;
double r3592725 = r3592670 * r3592724;
return r3592725;
}
double f(double z) {
double r3592726 = 676.5203681218851;
double r3592727 = 1.0;
double r3592728 = z;
double r3592729 = r3592727 - r3592728;
double r3592730 = r3592726 / r3592729;
double r3592731 = 0.9999999999998099;
double r3592732 = r3592730 + r3592731;
double r3592733 = 771.3234287776531;
double r3592734 = 2.0;
double r3592735 = r3592729 + r3592734;
double r3592736 = r3592733 / r3592735;
double r3592737 = r3592732 + r3592736;
double r3592738 = -1259.1392167224028;
double r3592739 = r3592734 - r3592728;
double r3592740 = r3592738 / r3592739;
double r3592741 = -176.6150291621406;
double r3592742 = 4.0;
double r3592743 = r3592742 - r3592728;
double r3592744 = r3592741 / r3592743;
double r3592745 = r3592740 + r3592744;
double r3592746 = r3592737 + r3592745;
double r3592747 = 1.5056327351493116e-07;
double r3592748 = 8.0;
double r3592749 = r3592748 - r3592728;
double r3592750 = r3592747 / r3592749;
double r3592751 = -0.13857109526572012;
double r3592752 = 6.0;
double r3592753 = r3592752 - r3592728;
double r3592754 = r3592751 / r3592753;
double r3592755 = 9.984369578019572e-06;
double r3592756 = 7.0;
double r3592757 = r3592756 - r3592728;
double r3592758 = r3592755 / r3592757;
double r3592759 = r3592754 + r3592758;
double r3592760 = r3592750 + r3592759;
double r3592761 = 12.507343278686905;
double r3592762 = -r3592728;
double r3592763 = -5.0;
double r3592764 = r3592762 - r3592763;
double r3592765 = r3592761 / r3592764;
double r3592766 = r3592760 + r3592765;
double r3592767 = r3592746 + r3592766;
double r3592768 = atan2(1.0, 0.0);
double r3592769 = r3592768 * r3592734;
double r3592770 = sqrt(r3592769);
double r3592771 = r3592768 * r3592728;
double r3592772 = sin(r3592771);
double r3592773 = r3592768 / r3592772;
double r3592774 = r3592770 * r3592773;
double r3592775 = 0.5;
double r3592776 = r3592757 + r3592775;
double r3592777 = r3592775 + r3592762;
double r3592778 = pow(r3592776, r3592777);
double r3592779 = 0.3333333333333333;
double r3592780 = pow(r3592778, r3592779);
double r3592781 = cbrt(r3592778);
double r3592782 = r3592780 * r3592781;
double r3592783 = exp(r3592776);
double r3592784 = r3592783 / r3592781;
double r3592785 = r3592782 / r3592784;
double r3592786 = r3592774 * r3592785;
double r3592787 = r3592767 * r3592786;
return r3592787;
}



Bits error versus z
Results
Initial program 1.8
Simplified1.7
rmApplied add-cube-cbrt0.7
Applied associate-/l*0.7
rmApplied pow1/30.7
Final simplification0.7
herbie shell --seed 2019132
(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))))))