\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{\left(\frac{\pi}{\sin \left(\pi \cdot z\right)} \cdot \left(\sqrt{\pi \cdot 2} \cdot {\left(\left(\left(\left(1 - z\right) - 1\right) + 7\right) + \frac{1}{2}\right)}^{\left(\left(\left(1 - z\right) - 1\right) + \frac{1}{2}\right)}\right)\right) \cdot \left(\left(\frac{\frac{5688119651184367}{37778931862957161709568}}{\left(\left(1 - z\right) - 1\right) + 8} + \left(\frac{\frac{-4992549864024149}{36028797018963968}}{\left(\left(1 - z\right) - 1\right) + 6} + \frac{\frac{5893731530977871}{590295810358705651712}}{\left(\left(1 - z\right) - 1\right) + 7}\right)\right) + \left(\left(\frac{\frac{7041008316161153}{562949953421312}}{\left(\left(1 - z\right) - 1\right) + 5} + \left(\frac{\frac{848079078717083}{1099511627776}}{\left(\left(1 - z\right) - 1\right) + 3} + \frac{\frac{-6214088902520669}{35184372088832}}{\left(\left(1 - z\right) - 1\right) + 4}\right)\right) + \left(\left(\frac{562949953421205}{562949953421312} + \frac{\frac{-5537752839100187}{4398046511104}}{\left(\sqrt{1 - z} + \sqrt{1}\right) \cdot \sqrt[3]{{\left(\sqrt{1 - z} - \sqrt{1}\right)}^{3}} + 2}\right) + \frac{\frac{5950736089418501}{1 - \left(z + 0\right)}}{8796093022208}\right)\right)\right)}{e^{\left(-1 \cdot z + 7\right) + \frac{1}{2}}}double f(double z) {
double r111571 = atan2(1.0, 0.0);
double r111572 = z;
double r111573 = r111571 * r111572;
double r111574 = sin(r111573);
double r111575 = r111571 / r111574;
double r111576 = 2.0;
double r111577 = r111571 * r111576;
double r111578 = sqrt(r111577);
double r111579 = 1.0;
double r111580 = r111579 - r111572;
double r111581 = r111580 - r111579;
double r111582 = 7.0;
double r111583 = r111581 + r111582;
double r111584 = 0.5;
double r111585 = r111583 + r111584;
double r111586 = r111581 + r111584;
double r111587 = pow(r111585, r111586);
double r111588 = r111578 * r111587;
double r111589 = -r111585;
double r111590 = exp(r111589);
double r111591 = r111588 * r111590;
double r111592 = 0.9999999999998099;
double r111593 = 676.5203681218851;
double r111594 = r111581 + r111579;
double r111595 = r111593 / r111594;
double r111596 = r111592 + r111595;
double r111597 = -1259.1392167224028;
double r111598 = r111581 + r111576;
double r111599 = r111597 / r111598;
double r111600 = r111596 + r111599;
double r111601 = 771.3234287776531;
double r111602 = 3.0;
double r111603 = r111581 + r111602;
double r111604 = r111601 / r111603;
double r111605 = r111600 + r111604;
double r111606 = -176.6150291621406;
double r111607 = 4.0;
double r111608 = r111581 + r111607;
double r111609 = r111606 / r111608;
double r111610 = r111605 + r111609;
double r111611 = 12.507343278686905;
double r111612 = 5.0;
double r111613 = r111581 + r111612;
double r111614 = r111611 / r111613;
double r111615 = r111610 + r111614;
double r111616 = -0.13857109526572012;
double r111617 = 6.0;
double r111618 = r111581 + r111617;
double r111619 = r111616 / r111618;
double r111620 = r111615 + r111619;
double r111621 = 9.984369578019572e-06;
double r111622 = r111621 / r111583;
double r111623 = r111620 + r111622;
double r111624 = 1.5056327351493116e-07;
double r111625 = 8.0;
double r111626 = r111581 + r111625;
double r111627 = r111624 / r111626;
double r111628 = r111623 + r111627;
double r111629 = r111591 * r111628;
double r111630 = r111575 * r111629;
return r111630;
}
double f(double z) {
double r111631 = atan2(1.0, 0.0);
double r111632 = z;
double r111633 = r111631 * r111632;
double r111634 = sin(r111633);
double r111635 = r111631 / r111634;
double r111636 = 2.0;
double r111637 = r111631 * r111636;
double r111638 = sqrt(r111637);
double r111639 = 1.0;
double r111640 = r111639 - r111632;
double r111641 = r111640 - r111639;
double r111642 = 7.0;
double r111643 = r111641 + r111642;
double r111644 = r111639 / r111636;
double r111645 = r111643 + r111644;
double r111646 = r111641 + r111644;
double r111647 = pow(r111645, r111646);
double r111648 = r111638 * r111647;
double r111649 = r111635 * r111648;
double r111650 = 5688119651184367.0;
double r111651 = 3.777893186295716e+22;
double r111652 = r111650 / r111651;
double r111653 = 8.0;
double r111654 = r111641 + r111653;
double r111655 = r111652 / r111654;
double r111656 = -4992549864024149.0;
double r111657 = 3.602879701896397e+16;
double r111658 = r111656 / r111657;
double r111659 = 6.0;
double r111660 = r111641 + r111659;
double r111661 = r111658 / r111660;
double r111662 = 5893731530977871.0;
double r111663 = 5.902958103587057e+20;
double r111664 = r111662 / r111663;
double r111665 = r111664 / r111643;
double r111666 = r111661 + r111665;
double r111667 = r111655 + r111666;
double r111668 = 7041008316161153.0;
double r111669 = 562949953421312.0;
double r111670 = r111668 / r111669;
double r111671 = 5.0;
double r111672 = r111641 + r111671;
double r111673 = r111670 / r111672;
double r111674 = 848079078717083.0;
double r111675 = 1099511627776.0;
double r111676 = r111674 / r111675;
double r111677 = 3.0;
double r111678 = r111641 + r111677;
double r111679 = r111676 / r111678;
double r111680 = -6214088902520669.0;
double r111681 = 35184372088832.0;
double r111682 = r111680 / r111681;
double r111683 = 4.0;
double r111684 = r111641 + r111683;
double r111685 = r111682 / r111684;
double r111686 = r111679 + r111685;
double r111687 = r111673 + r111686;
double r111688 = 562949953421205.0;
double r111689 = r111688 / r111669;
double r111690 = -5537752839100187.0;
double r111691 = 4398046511104.0;
double r111692 = r111690 / r111691;
double r111693 = sqrt(r111640);
double r111694 = sqrt(r111639);
double r111695 = r111693 + r111694;
double r111696 = r111693 - r111694;
double r111697 = 3.0;
double r111698 = pow(r111696, r111697);
double r111699 = cbrt(r111698);
double r111700 = r111695 * r111699;
double r111701 = r111700 + r111636;
double r111702 = r111692 / r111701;
double r111703 = r111689 + r111702;
double r111704 = 5950736089418501.0;
double r111705 = 0.0;
double r111706 = r111632 + r111705;
double r111707 = r111639 - r111706;
double r111708 = r111704 / r111707;
double r111709 = 8796093022208.0;
double r111710 = r111708 / r111709;
double r111711 = r111703 + r111710;
double r111712 = r111687 + r111711;
double r111713 = r111667 + r111712;
double r111714 = r111649 * r111713;
double r111715 = -1.0;
double r111716 = r111715 * r111632;
double r111717 = r111716 + r111642;
double r111718 = r111717 + r111644;
double r111719 = exp(r111718);
double r111720 = r111714 / r111719;
return r111720;
}



Bits error versus z
Results
Initial program 1.8
Simplified1.7
rmApplied add-sqr-sqrt1.7
Applied add-sqr-sqrt1.9
Applied difference-of-squares1.9
rmApplied add-cbrt-cube1.9
Simplified1.9
Taylor expanded around 0 1.9
Final simplification1.9
herbie shell --seed 2019303
(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.99999999999980993 (/ 676.520368121885099 (+ (- (- 1 z) 1) 1))) (/ -1259.13921672240281 (+ (- (- 1 z) 1) 2))) (/ 771.32342877765313 (+ (- (- 1 z) 1) 3))) (/ -176.615029162140587 (+ (- (- 1 z) 1) 4))) (/ 12.5073432786869052 (+ (- (- 1 z) 1) 5))) (/ -0.138571095265720118 (+ (- (- 1 z) 1) 6))) (/ 9.98436957801957158e-6 (+ (- (- 1 z) 1) 7))) (/ 1.50563273514931162e-7 (+ (- (- 1 z) 1) 8))))))