\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.99999999999980993 + \frac{676.520368121885099}{\left(z - 1\right) + 1}\right) + \frac{-1259.13921672240281}{\left(z - 1\right) + 2}\right) + \frac{771.32342877765313}{\left(z - 1\right) + 3}\right) + \frac{-176.615029162140587}{\left(z - 1\right) + 4}\right) + \frac{12.5073432786869052}{\left(z - 1\right) + 5}\right) + \frac{-0.138571095265720118}{\left(z - 1\right) + 6}\right) + \frac{9.98436957801957158 \cdot 10^{-6}}{\left(z - 1\right) + 7}\right) + \frac{1.50563273514931162 \cdot 10^{-7}}{\left(z - 1\right) + 8}\right)\left(\left(\frac{{\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}^{\left(\left(z - 1\right) + 0.5\right)}}{\sqrt{e^{\left(\left(z - 1\right) + 7\right) + 0.5}}} \cdot \frac{1}{\sqrt{e^{\left(z - 1\right) + 7}}}\right) \cdot \frac{\sqrt{\pi \cdot 2}}{\sqrt{e^{0.5}}}\right) \cdot \left(\left(\left(\frac{676.520368121885099}{z} + 0.99999999999980993\right) + \frac{-1259.13921672240281}{\left(z - 1\right) + 2}\right) + \left(\left(\left(\frac{771.32342877765313}{\left(z - 1\right) + 3} + \frac{-176.615029162140587}{\left(z - 1\right) + 4}\right) + \frac{12.5073432786869052}{\left(z - 1\right) + 5}\right) + \left(\left(\frac{-0.138571095265720118}{\left(z - 1\right) + 6} + \frac{9.98436957801957158 \cdot 10^{-6}}{\left(z - 1\right) + 7}\right) + \frac{1.50563273514931162 \cdot 10^{-7}}{\left(z - 1\right) + 8}\right)\right)\right)double f(double z) {
double r253521 = atan2(1.0, 0.0);
double r253522 = 2.0;
double r253523 = r253521 * r253522;
double r253524 = sqrt(r253523);
double r253525 = z;
double r253526 = 1.0;
double r253527 = r253525 - r253526;
double r253528 = 7.0;
double r253529 = r253527 + r253528;
double r253530 = 0.5;
double r253531 = r253529 + r253530;
double r253532 = r253527 + r253530;
double r253533 = pow(r253531, r253532);
double r253534 = r253524 * r253533;
double r253535 = -r253531;
double r253536 = exp(r253535);
double r253537 = r253534 * r253536;
double r253538 = 0.9999999999998099;
double r253539 = 676.5203681218851;
double r253540 = r253527 + r253526;
double r253541 = r253539 / r253540;
double r253542 = r253538 + r253541;
double r253543 = -1259.1392167224028;
double r253544 = r253527 + r253522;
double r253545 = r253543 / r253544;
double r253546 = r253542 + r253545;
double r253547 = 771.3234287776531;
double r253548 = 3.0;
double r253549 = r253527 + r253548;
double r253550 = r253547 / r253549;
double r253551 = r253546 + r253550;
double r253552 = -176.6150291621406;
double r253553 = 4.0;
double r253554 = r253527 + r253553;
double r253555 = r253552 / r253554;
double r253556 = r253551 + r253555;
double r253557 = 12.507343278686905;
double r253558 = 5.0;
double r253559 = r253527 + r253558;
double r253560 = r253557 / r253559;
double r253561 = r253556 + r253560;
double r253562 = -0.13857109526572012;
double r253563 = 6.0;
double r253564 = r253527 + r253563;
double r253565 = r253562 / r253564;
double r253566 = r253561 + r253565;
double r253567 = 9.984369578019572e-06;
double r253568 = r253567 / r253529;
double r253569 = r253566 + r253568;
double r253570 = 1.5056327351493116e-07;
double r253571 = 8.0;
double r253572 = r253527 + r253571;
double r253573 = r253570 / r253572;
double r253574 = r253569 + r253573;
double r253575 = r253537 * r253574;
return r253575;
}
double f(double z) {
double r253576 = z;
double r253577 = 1.0;
double r253578 = r253576 - r253577;
double r253579 = 7.0;
double r253580 = r253578 + r253579;
double r253581 = 0.5;
double r253582 = r253580 + r253581;
double r253583 = r253578 + r253581;
double r253584 = pow(r253582, r253583);
double r253585 = exp(r253582);
double r253586 = sqrt(r253585);
double r253587 = r253584 / r253586;
double r253588 = 1.0;
double r253589 = exp(r253580);
double r253590 = sqrt(r253589);
double r253591 = r253588 / r253590;
double r253592 = r253587 * r253591;
double r253593 = atan2(1.0, 0.0);
double r253594 = 2.0;
double r253595 = r253593 * r253594;
double r253596 = sqrt(r253595);
double r253597 = exp(r253581);
double r253598 = sqrt(r253597);
double r253599 = r253596 / r253598;
double r253600 = r253592 * r253599;
double r253601 = 676.5203681218851;
double r253602 = r253601 / r253576;
double r253603 = 0.9999999999998099;
double r253604 = r253602 + r253603;
double r253605 = -1259.1392167224028;
double r253606 = r253578 + r253594;
double r253607 = r253605 / r253606;
double r253608 = r253604 + r253607;
double r253609 = 771.3234287776531;
double r253610 = 3.0;
double r253611 = r253578 + r253610;
double r253612 = r253609 / r253611;
double r253613 = -176.6150291621406;
double r253614 = 4.0;
double r253615 = r253578 + r253614;
double r253616 = r253613 / r253615;
double r253617 = r253612 + r253616;
double r253618 = 12.507343278686905;
double r253619 = 5.0;
double r253620 = r253578 + r253619;
double r253621 = r253618 / r253620;
double r253622 = r253617 + r253621;
double r253623 = -0.13857109526572012;
double r253624 = 6.0;
double r253625 = r253578 + r253624;
double r253626 = r253623 / r253625;
double r253627 = 9.984369578019572e-06;
double r253628 = r253627 / r253580;
double r253629 = r253626 + r253628;
double r253630 = 1.5056327351493116e-07;
double r253631 = 8.0;
double r253632 = r253578 + r253631;
double r253633 = r253630 / r253632;
double r253634 = r253629 + r253633;
double r253635 = r253622 + r253634;
double r253636 = r253608 + r253635;
double r253637 = r253600 * r253636;
return r253637;
}



Bits error versus z
Results
Initial program 61.8
Simplified1.1
rmApplied add-sqr-sqrt1.1
Applied times-frac0.9
rmApplied exp-sum0.9
Applied sqrt-prod0.9
Applied *-un-lft-identity0.9
Applied times-frac1.1
Applied associate-*r*0.9
Final simplification0.9
herbie shell --seed 2019198
(FPCore (z)
:name "Jmat.Real.gamma, branch z greater than 0.5"
(* (* (* (sqrt (* PI 2.0)) (pow (+ (+ (- z 1.0) 7.0) 0.5) (+ (- z 1.0) 0.5))) (exp (- (+ (+ (- z 1.0) 7.0) 0.5)))) (+ (+ (+ (+ (+ (+ (+ (+ 0.9999999999998099 (/ 676.5203681218851 (+ (- z 1.0) 1.0))) (/ -1259.1392167224028 (+ (- z 1.0) 2.0))) (/ 771.3234287776531 (+ (- z 1.0) 3.0))) (/ -176.6150291621406 (+ (- z 1.0) 4.0))) (/ 12.507343278686905 (+ (- z 1.0) 5.0))) (/ -0.13857109526572012 (+ (- z 1.0) 6.0))) (/ 9.984369578019572e-06 (+ (- z 1.0) 7.0))) (/ 1.5056327351493116e-07 (+ (- z 1.0) 8.0)))))