\left(\left(\sqrt{\pi \cdot 2} \cdot {\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}^{\left(\left(z - 1\right) + 0.5\right)}\right) \cdot e^{-\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}\right) \cdot \left(\left(\left(\left(\left(\left(\left(\left(0.9999999999998099 + \frac{676.5203681218851}{\left(z - 1\right) + 1}\right) + \frac{-1259.1392167224028}{\left(z - 1\right) + 2}\right) + \frac{771.3234287776531}{\left(z - 1\right) + 3}\right) + \frac{-176.6150291621406}{\left(z - 1\right) + 4}\right) + \frac{12.507343278686905}{\left(z - 1\right) + 5}\right) + \frac{-0.13857109526572012}{\left(z - 1\right) + 6}\right) + \frac{9.984369578019572 \cdot 10^{-06}}{\left(z - 1\right) + 7}\right) + \frac{1.5056327351493116 \cdot 10^{-07}}{\left(z - 1\right) + 8}\right)\frac{{\left(\left(z + 6\right) + 0.5\right)}^{\left(\left(0.5 + -1\right) + z\right)} \cdot \sqrt{\pi \cdot 2}}{\frac{e^{\left(z + 6\right) + 0.5}}{\frac{-0.13857109526572012}{z - -5} + \left(\left(\frac{1.5056327351493116 \cdot 10^{-07}}{z + 7} + \frac{9.984369578019572 \cdot 10^{-06}}{z + 6}\right) + \left(\left(\left(\frac{-176.6150291621406}{3 + z} + \frac{676.5203681218851}{z}\right) + \left(\left(\frac{771.3234287776531}{2 + z} + \frac{-1259.1392167224028}{z + 1}\right) + 0.9999999999998099\right)\right) + \frac{12.507343278686905}{4 + z}\right)\right)}}double f(double z) {
double r4834531 = atan2(1.0, 0.0);
double r4834532 = 2.0;
double r4834533 = r4834531 * r4834532;
double r4834534 = sqrt(r4834533);
double r4834535 = z;
double r4834536 = 1.0;
double r4834537 = r4834535 - r4834536;
double r4834538 = 7.0;
double r4834539 = r4834537 + r4834538;
double r4834540 = 0.5;
double r4834541 = r4834539 + r4834540;
double r4834542 = r4834537 + r4834540;
double r4834543 = pow(r4834541, r4834542);
double r4834544 = r4834534 * r4834543;
double r4834545 = -r4834541;
double r4834546 = exp(r4834545);
double r4834547 = r4834544 * r4834546;
double r4834548 = 0.9999999999998099;
double r4834549 = 676.5203681218851;
double r4834550 = r4834537 + r4834536;
double r4834551 = r4834549 / r4834550;
double r4834552 = r4834548 + r4834551;
double r4834553 = -1259.1392167224028;
double r4834554 = r4834537 + r4834532;
double r4834555 = r4834553 / r4834554;
double r4834556 = r4834552 + r4834555;
double r4834557 = 771.3234287776531;
double r4834558 = 3.0;
double r4834559 = r4834537 + r4834558;
double r4834560 = r4834557 / r4834559;
double r4834561 = r4834556 + r4834560;
double r4834562 = -176.6150291621406;
double r4834563 = 4.0;
double r4834564 = r4834537 + r4834563;
double r4834565 = r4834562 / r4834564;
double r4834566 = r4834561 + r4834565;
double r4834567 = 12.507343278686905;
double r4834568 = 5.0;
double r4834569 = r4834537 + r4834568;
double r4834570 = r4834567 / r4834569;
double r4834571 = r4834566 + r4834570;
double r4834572 = -0.13857109526572012;
double r4834573 = 6.0;
double r4834574 = r4834537 + r4834573;
double r4834575 = r4834572 / r4834574;
double r4834576 = r4834571 + r4834575;
double r4834577 = 9.984369578019572e-06;
double r4834578 = r4834577 / r4834539;
double r4834579 = r4834576 + r4834578;
double r4834580 = 1.5056327351493116e-07;
double r4834581 = 8.0;
double r4834582 = r4834537 + r4834581;
double r4834583 = r4834580 / r4834582;
double r4834584 = r4834579 + r4834583;
double r4834585 = r4834547 * r4834584;
return r4834585;
}
double f(double z) {
double r4834586 = z;
double r4834587 = 6.0;
double r4834588 = r4834586 + r4834587;
double r4834589 = 0.5;
double r4834590 = r4834588 + r4834589;
double r4834591 = -1.0;
double r4834592 = r4834589 + r4834591;
double r4834593 = r4834592 + r4834586;
double r4834594 = pow(r4834590, r4834593);
double r4834595 = atan2(1.0, 0.0);
double r4834596 = 2.0;
double r4834597 = r4834595 * r4834596;
double r4834598 = sqrt(r4834597);
double r4834599 = r4834594 * r4834598;
double r4834600 = exp(r4834590);
double r4834601 = -0.13857109526572012;
double r4834602 = -5.0;
double r4834603 = r4834586 - r4834602;
double r4834604 = r4834601 / r4834603;
double r4834605 = 1.5056327351493116e-07;
double r4834606 = 7.0;
double r4834607 = r4834586 + r4834606;
double r4834608 = r4834605 / r4834607;
double r4834609 = 9.984369578019572e-06;
double r4834610 = r4834609 / r4834588;
double r4834611 = r4834608 + r4834610;
double r4834612 = -176.6150291621406;
double r4834613 = 3.0;
double r4834614 = r4834613 + r4834586;
double r4834615 = r4834612 / r4834614;
double r4834616 = 676.5203681218851;
double r4834617 = r4834616 / r4834586;
double r4834618 = r4834615 + r4834617;
double r4834619 = 771.3234287776531;
double r4834620 = r4834596 + r4834586;
double r4834621 = r4834619 / r4834620;
double r4834622 = -1259.1392167224028;
double r4834623 = 1.0;
double r4834624 = r4834586 + r4834623;
double r4834625 = r4834622 / r4834624;
double r4834626 = r4834621 + r4834625;
double r4834627 = 0.9999999999998099;
double r4834628 = r4834626 + r4834627;
double r4834629 = r4834618 + r4834628;
double r4834630 = 12.507343278686905;
double r4834631 = 4.0;
double r4834632 = r4834631 + r4834586;
double r4834633 = r4834630 / r4834632;
double r4834634 = r4834629 + r4834633;
double r4834635 = r4834611 + r4834634;
double r4834636 = r4834604 + r4834635;
double r4834637 = r4834600 / r4834636;
double r4834638 = r4834599 / r4834637;
return r4834638;
}



Bits error versus z
Results
Initial program 59.9
Simplified1.1
Simplified0.9
rmApplied associate-/l*0.9
Final simplification0.9
herbie shell --seed 2019139 +o rules:numerics
(FPCore (z)
:name "Jmat.Real.gamma, branch z greater than 0.5"
(* (* (* (sqrt (* PI 2)) (pow (+ (+ (- z 1) 7) 0.5) (+ (- z 1) 0.5))) (exp (- (+ (+ (- z 1) 7) 0.5)))) (+ (+ (+ (+ (+ (+ (+ (+ 0.9999999999998099 (/ 676.5203681218851 (+ (- z 1) 1))) (/ -1259.1392167224028 (+ (- z 1) 2))) (/ 771.3234287776531 (+ (- z 1) 3))) (/ -176.6150291621406 (+ (- z 1) 4))) (/ 12.507343278686905 (+ (- z 1) 5))) (/ -0.13857109526572012 (+ (- z 1) 6))) (/ 9.984369578019572e-06 (+ (- z 1) 7))) (/ 1.5056327351493116e-07 (+ (- z 1) 8)))))