\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)\mathsf{fma}\left(397.106430720188, \frac{\left(e^{-6} \cdot z\right) \cdot \sqrt{2}}{e^{0.5}} \cdot \left({\left({6.5}^{1.0}\right)}^{0.5} \cdot \sqrt{\pi}\right), \mathsf{fma}\left(26.020014158534043, \left({\left(\frac{1}{{6.5}^{3.0}}\right)}^{0.5} \cdot \frac{\left(e^{-6} \cdot z\right) \cdot \sqrt{2}}{e^{0.5}}\right) \cdot \sqrt{\pi}, \mathsf{fma}\left(52.040028317068085, \sqrt{\pi} \cdot \left({\left({6.5}^{1.0}\right)}^{0.5} \cdot \frac{\left(z \cdot \left(\log 6.5 \cdot \log 6.5\right)\right) \cdot \left(e^{-6} \cdot \sqrt{2}\right)}{e^{0.5}}\right), \left(\left({\left({6.5}^{1.0}\right)}^{0.5} \cdot \sqrt{\pi}\right) \cdot \frac{\left(\log 6.5 \cdot e^{-6}\right) \cdot \sqrt{2}}{e^{0.5}} + \left(\left(\frac{e^{-6}}{z} \cdot \frac{\sqrt{2}}{e^{0.5}}\right) \cdot {\left({6.5}^{1.0}\right)}^{0.5}\right) \cdot \sqrt{\pi}\right) \cdot 104.08005663413617\right)\right)\right) - 254.89391567288007 \cdot \left(\sqrt{\pi} \cdot \left({\left({6.5}^{1.0}\right)}^{0.5} \cdot \frac{e^{-6} \cdot \sqrt{2}}{e^{0.5}}\right) + \left(\frac{\left(e^{-6} \cdot \sqrt{2}\right) \cdot \left(z \cdot \log 6.5\right)}{e^{0.5}} \cdot {\left({6.5}^{1.0}\right)}^{0.5}\right) \cdot \sqrt{\pi}\right)double f(double z) {
double r12386435 = atan2(1.0, 0.0);
double r12386436 = 2.0;
double r12386437 = r12386435 * r12386436;
double r12386438 = sqrt(r12386437);
double r12386439 = z;
double r12386440 = 1.0;
double r12386441 = r12386439 - r12386440;
double r12386442 = 7.0;
double r12386443 = r12386441 + r12386442;
double r12386444 = 0.5;
double r12386445 = r12386443 + r12386444;
double r12386446 = r12386441 + r12386444;
double r12386447 = pow(r12386445, r12386446);
double r12386448 = r12386438 * r12386447;
double r12386449 = -r12386445;
double r12386450 = exp(r12386449);
double r12386451 = r12386448 * r12386450;
double r12386452 = 0.9999999999998099;
double r12386453 = 676.5203681218851;
double r12386454 = r12386441 + r12386440;
double r12386455 = r12386453 / r12386454;
double r12386456 = r12386452 + r12386455;
double r12386457 = -1259.1392167224028;
double r12386458 = r12386441 + r12386436;
double r12386459 = r12386457 / r12386458;
double r12386460 = r12386456 + r12386459;
double r12386461 = 771.3234287776531;
double r12386462 = 3.0;
double r12386463 = r12386441 + r12386462;
double r12386464 = r12386461 / r12386463;
double r12386465 = r12386460 + r12386464;
double r12386466 = -176.6150291621406;
double r12386467 = 4.0;
double r12386468 = r12386441 + r12386467;
double r12386469 = r12386466 / r12386468;
double r12386470 = r12386465 + r12386469;
double r12386471 = 12.507343278686905;
double r12386472 = 5.0;
double r12386473 = r12386441 + r12386472;
double r12386474 = r12386471 / r12386473;
double r12386475 = r12386470 + r12386474;
double r12386476 = -0.13857109526572012;
double r12386477 = 6.0;
double r12386478 = r12386441 + r12386477;
double r12386479 = r12386476 / r12386478;
double r12386480 = r12386475 + r12386479;
double r12386481 = 9.984369578019572e-06;
double r12386482 = r12386481 / r12386443;
double r12386483 = r12386480 + r12386482;
double r12386484 = 1.5056327351493116e-07;
double r12386485 = 8.0;
double r12386486 = r12386441 + r12386485;
double r12386487 = r12386484 / r12386486;
double r12386488 = r12386483 + r12386487;
double r12386489 = r12386451 * r12386488;
return r12386489;
}
double f(double z) {
double r12386490 = 397.106430720188;
double r12386491 = -6.0;
double r12386492 = exp(r12386491);
double r12386493 = z;
double r12386494 = r12386492 * r12386493;
double r12386495 = 2.0;
double r12386496 = sqrt(r12386495);
double r12386497 = r12386494 * r12386496;
double r12386498 = 0.5;
double r12386499 = exp(r12386498);
double r12386500 = r12386497 / r12386499;
double r12386501 = 6.5;
double r12386502 = 1.0;
double r12386503 = pow(r12386501, r12386502);
double r12386504 = pow(r12386503, r12386498);
double r12386505 = atan2(1.0, 0.0);
double r12386506 = sqrt(r12386505);
double r12386507 = r12386504 * r12386506;
double r12386508 = r12386500 * r12386507;
double r12386509 = 26.020014158534043;
double r12386510 = 1.0;
double r12386511 = 3.0;
double r12386512 = pow(r12386501, r12386511);
double r12386513 = r12386510 / r12386512;
double r12386514 = pow(r12386513, r12386498);
double r12386515 = r12386514 * r12386500;
double r12386516 = r12386515 * r12386506;
double r12386517 = 52.040028317068085;
double r12386518 = log(r12386501);
double r12386519 = r12386518 * r12386518;
double r12386520 = r12386493 * r12386519;
double r12386521 = r12386492 * r12386496;
double r12386522 = r12386520 * r12386521;
double r12386523 = r12386522 / r12386499;
double r12386524 = r12386504 * r12386523;
double r12386525 = r12386506 * r12386524;
double r12386526 = r12386518 * r12386492;
double r12386527 = r12386526 * r12386496;
double r12386528 = r12386527 / r12386499;
double r12386529 = r12386507 * r12386528;
double r12386530 = r12386492 / r12386493;
double r12386531 = r12386496 / r12386499;
double r12386532 = r12386530 * r12386531;
double r12386533 = r12386532 * r12386504;
double r12386534 = r12386533 * r12386506;
double r12386535 = r12386529 + r12386534;
double r12386536 = 104.08005663413617;
double r12386537 = r12386535 * r12386536;
double r12386538 = fma(r12386517, r12386525, r12386537);
double r12386539 = fma(r12386509, r12386516, r12386538);
double r12386540 = fma(r12386490, r12386508, r12386539);
double r12386541 = 254.89391567288007;
double r12386542 = r12386521 / r12386499;
double r12386543 = r12386504 * r12386542;
double r12386544 = r12386506 * r12386543;
double r12386545 = r12386493 * r12386518;
double r12386546 = r12386521 * r12386545;
double r12386547 = r12386546 / r12386499;
double r12386548 = r12386547 * r12386504;
double r12386549 = r12386548 * r12386506;
double r12386550 = r12386544 + r12386549;
double r12386551 = r12386541 * r12386550;
double r12386552 = r12386540 - r12386551;
return r12386552;
}



Bits error versus z
Initial program 59.9
Simplified0.9
rmApplied associate-+r-0.9
Applied exp-diff0.8
Applied associate-/r/0.8
rmApplied associate-*l*0.8
rmApplied associate--r-0.8
Applied unpow-prod-up1.0
Applied associate-*r*0.9
Taylor expanded around 0 1.5
Simplified1.2
Final simplification1.2
herbie shell --seed 2019168 +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)))))