\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)\sqrt{\pi \cdot 2} \cdot \left(\left(\frac{-0.13857109526572012}{z + 5} + \left(\left(\left(\frac{1.5056327351493116 \cdot 10^{-07}}{z + 7} + \frac{771.3234287776531}{2 + z}\right) + \left(\frac{12.507343278686905}{z + 4} + \frac{9.984369578019572 \cdot 10^{-06}}{6 + z}\right)\right) + \left(\left(\frac{676.5203681218851}{z} + \left(0.9999999999998099 + \frac{-176.6150291621406}{z + 3}\right)\right) + \frac{-1259.1392167224028}{1 + z}\right)\right)\right) \cdot \frac{1}{\frac{\frac{e^{z + 0.5}}{{\left(\sqrt{\sqrt[3]{\left(z + 0.5\right) + 6} \cdot \sqrt[3]{\left(z + 0.5\right) + 6}}\right)}^{\left(0.5 + \left(z - 1\right)\right)}}}{\frac{{\left(\sqrt{\left(z + 0.5\right) + 6}\right)}^{\left(0.5 + \left(z - 1\right)\right)}}{\frac{e^{6}}{{\left(\sqrt{\sqrt[3]{\left(z + 0.5\right) + 6}}\right)}^{\left(0.5 + \left(z - 1\right)\right)}}}}}\right)double f(double z) {
double r16781420 = atan2(1.0, 0.0);
double r16781421 = 2.0;
double r16781422 = r16781420 * r16781421;
double r16781423 = sqrt(r16781422);
double r16781424 = z;
double r16781425 = 1.0;
double r16781426 = r16781424 - r16781425;
double r16781427 = 7.0;
double r16781428 = r16781426 + r16781427;
double r16781429 = 0.5;
double r16781430 = r16781428 + r16781429;
double r16781431 = r16781426 + r16781429;
double r16781432 = pow(r16781430, r16781431);
double r16781433 = r16781423 * r16781432;
double r16781434 = -r16781430;
double r16781435 = exp(r16781434);
double r16781436 = r16781433 * r16781435;
double r16781437 = 0.9999999999998099;
double r16781438 = 676.5203681218851;
double r16781439 = r16781426 + r16781425;
double r16781440 = r16781438 / r16781439;
double r16781441 = r16781437 + r16781440;
double r16781442 = -1259.1392167224028;
double r16781443 = r16781426 + r16781421;
double r16781444 = r16781442 / r16781443;
double r16781445 = r16781441 + r16781444;
double r16781446 = 771.3234287776531;
double r16781447 = 3.0;
double r16781448 = r16781426 + r16781447;
double r16781449 = r16781446 / r16781448;
double r16781450 = r16781445 + r16781449;
double r16781451 = -176.6150291621406;
double r16781452 = 4.0;
double r16781453 = r16781426 + r16781452;
double r16781454 = r16781451 / r16781453;
double r16781455 = r16781450 + r16781454;
double r16781456 = 12.507343278686905;
double r16781457 = 5.0;
double r16781458 = r16781426 + r16781457;
double r16781459 = r16781456 / r16781458;
double r16781460 = r16781455 + r16781459;
double r16781461 = -0.13857109526572012;
double r16781462 = 6.0;
double r16781463 = r16781426 + r16781462;
double r16781464 = r16781461 / r16781463;
double r16781465 = r16781460 + r16781464;
double r16781466 = 9.984369578019572e-06;
double r16781467 = r16781466 / r16781428;
double r16781468 = r16781465 + r16781467;
double r16781469 = 1.5056327351493116e-07;
double r16781470 = 8.0;
double r16781471 = r16781426 + r16781470;
double r16781472 = r16781469 / r16781471;
double r16781473 = r16781468 + r16781472;
double r16781474 = r16781436 * r16781473;
return r16781474;
}
double f(double z) {
double r16781475 = atan2(1.0, 0.0);
double r16781476 = 2.0;
double r16781477 = r16781475 * r16781476;
double r16781478 = sqrt(r16781477);
double r16781479 = -0.13857109526572012;
double r16781480 = z;
double r16781481 = 5.0;
double r16781482 = r16781480 + r16781481;
double r16781483 = r16781479 / r16781482;
double r16781484 = 1.5056327351493116e-07;
double r16781485 = 7.0;
double r16781486 = r16781480 + r16781485;
double r16781487 = r16781484 / r16781486;
double r16781488 = 771.3234287776531;
double r16781489 = r16781476 + r16781480;
double r16781490 = r16781488 / r16781489;
double r16781491 = r16781487 + r16781490;
double r16781492 = 12.507343278686905;
double r16781493 = 4.0;
double r16781494 = r16781480 + r16781493;
double r16781495 = r16781492 / r16781494;
double r16781496 = 9.984369578019572e-06;
double r16781497 = 6.0;
double r16781498 = r16781497 + r16781480;
double r16781499 = r16781496 / r16781498;
double r16781500 = r16781495 + r16781499;
double r16781501 = r16781491 + r16781500;
double r16781502 = 676.5203681218851;
double r16781503 = r16781502 / r16781480;
double r16781504 = 0.9999999999998099;
double r16781505 = -176.6150291621406;
double r16781506 = 3.0;
double r16781507 = r16781480 + r16781506;
double r16781508 = r16781505 / r16781507;
double r16781509 = r16781504 + r16781508;
double r16781510 = r16781503 + r16781509;
double r16781511 = -1259.1392167224028;
double r16781512 = 1.0;
double r16781513 = r16781512 + r16781480;
double r16781514 = r16781511 / r16781513;
double r16781515 = r16781510 + r16781514;
double r16781516 = r16781501 + r16781515;
double r16781517 = r16781483 + r16781516;
double r16781518 = 0.5;
double r16781519 = r16781480 + r16781518;
double r16781520 = exp(r16781519);
double r16781521 = r16781519 + r16781497;
double r16781522 = cbrt(r16781521);
double r16781523 = r16781522 * r16781522;
double r16781524 = sqrt(r16781523);
double r16781525 = r16781480 - r16781512;
double r16781526 = r16781518 + r16781525;
double r16781527 = pow(r16781524, r16781526);
double r16781528 = r16781520 / r16781527;
double r16781529 = sqrt(r16781521);
double r16781530 = pow(r16781529, r16781526);
double r16781531 = exp(r16781497);
double r16781532 = sqrt(r16781522);
double r16781533 = pow(r16781532, r16781526);
double r16781534 = r16781531 / r16781533;
double r16781535 = r16781530 / r16781534;
double r16781536 = r16781528 / r16781535;
double r16781537 = r16781512 / r16781536;
double r16781538 = r16781517 * r16781537;
double r16781539 = r16781478 * r16781538;
return r16781539;
}



Bits error versus z
Results
Initial program 59.8
Simplified1.2
Simplified0.9
rmApplied add-sqr-sqrt0.9
Applied unpow-prod-down0.9
Applied exp-sum0.9
Applied times-frac0.9
rmApplied div-inv1.6
Applied associate-*l*1.5
Simplified0.9
rmApplied add-cube-cbrt0.9
Applied sqrt-prod0.9
Applied unpow-prod-down0.9
Applied exp-sum0.9
Applied times-frac0.9
Applied associate-/l*0.9
Final simplification0.9
herbie shell --seed 2019130
(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)))))