\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.99999999999980993 + \frac{676.520368121885099}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.13921672240281}{\left(\left(1 - z\right) - 1\right) + 2}\right) + \frac{771.32342877765313}{\left(\left(1 - z\right) - 1\right) + 3}\right) + \frac{-176.615029162140587}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \frac{12.5073432786869052}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.138571095265720118}{\left(\left(1 - z\right) - 1\right) + 6}\right) + \frac{9.98436957801957158 \cdot 10^{-6}}{\left(\left(1 - z\right) - 1\right) + 7}\right) + \frac{1.50563273514931162 \cdot 10^{-7}}{\left(\left(1 - z\right) - 1\right) + 8}\right)\right)\left(\sqrt{\pi \cdot 2} \cdot \frac{{\left(0.5 + \left(\left(-z\right) + 7\right)\right)}^{\left(0.5 + \left(-z\right)\right)}}{e^{0.5 + \left(\left(-z\right) + 7\right)}}\right) \cdot \left(\frac{\pi}{\sin \left(\pi \cdot z\right)} \cdot \left(\frac{12.5073432786869052}{5 + \left(-z\right)} + \left(\mathsf{fma}\left(\sqrt[3]{\left(\frac{-0.138571095265720118}{6 + \left(-z\right)} + \frac{-1259.13921672240281}{\left(-z\right) + 2}\right) + \left(\frac{676.520368121885099}{1 - z} + \left(\frac{771.32342877765313}{3 + \left(-z\right)} + 0.99999999999980993\right)\right)} \cdot \sqrt[3]{\left(\frac{-0.138571095265720118}{6 + \left(-z\right)} + \frac{-1259.13921672240281}{\left(-z\right) + 2}\right) + \left(\frac{676.520368121885099}{1 - z} + \left(\frac{771.32342877765313}{3 + \left(-z\right)} + 0.99999999999980993\right)\right)}, \sqrt[3]{\left(\frac{-0.138571095265720118}{6 + \left(-z\right)} + \frac{-1259.13921672240281}{\left(-z\right) + 2}\right) + \left(\frac{676.520368121885099}{1 - z} + \left(\frac{771.32342877765313}{3 + \left(-z\right)} + 0.99999999999980993\right)\right)}, \frac{-176.615029162140587}{\left(-z\right) + 4}\right) + \left(\frac{1.50563273514931162 \cdot 10^{-7}}{\left(-z\right) + 8} + \frac{9.98436957801957158 \cdot 10^{-6}}{\left(-z\right) + 7}\right)\right)\right)\right)double f(double z) {
double r145348 = atan2(1.0, 0.0);
double r145349 = z;
double r145350 = r145348 * r145349;
double r145351 = sin(r145350);
double r145352 = r145348 / r145351;
double r145353 = 2.0;
double r145354 = r145348 * r145353;
double r145355 = sqrt(r145354);
double r145356 = 1.0;
double r145357 = r145356 - r145349;
double r145358 = r145357 - r145356;
double r145359 = 7.0;
double r145360 = r145358 + r145359;
double r145361 = 0.5;
double r145362 = r145360 + r145361;
double r145363 = r145358 + r145361;
double r145364 = pow(r145362, r145363);
double r145365 = r145355 * r145364;
double r145366 = -r145362;
double r145367 = exp(r145366);
double r145368 = r145365 * r145367;
double r145369 = 0.9999999999998099;
double r145370 = 676.5203681218851;
double r145371 = r145358 + r145356;
double r145372 = r145370 / r145371;
double r145373 = r145369 + r145372;
double r145374 = -1259.1392167224028;
double r145375 = r145358 + r145353;
double r145376 = r145374 / r145375;
double r145377 = r145373 + r145376;
double r145378 = 771.3234287776531;
double r145379 = 3.0;
double r145380 = r145358 + r145379;
double r145381 = r145378 / r145380;
double r145382 = r145377 + r145381;
double r145383 = -176.6150291621406;
double r145384 = 4.0;
double r145385 = r145358 + r145384;
double r145386 = r145383 / r145385;
double r145387 = r145382 + r145386;
double r145388 = 12.507343278686905;
double r145389 = 5.0;
double r145390 = r145358 + r145389;
double r145391 = r145388 / r145390;
double r145392 = r145387 + r145391;
double r145393 = -0.13857109526572012;
double r145394 = 6.0;
double r145395 = r145358 + r145394;
double r145396 = r145393 / r145395;
double r145397 = r145392 + r145396;
double r145398 = 9.984369578019572e-06;
double r145399 = r145398 / r145360;
double r145400 = r145397 + r145399;
double r145401 = 1.5056327351493116e-07;
double r145402 = 8.0;
double r145403 = r145358 + r145402;
double r145404 = r145401 / r145403;
double r145405 = r145400 + r145404;
double r145406 = r145368 * r145405;
double r145407 = r145352 * r145406;
return r145407;
}
double f(double z) {
double r145408 = atan2(1.0, 0.0);
double r145409 = 2.0;
double r145410 = r145408 * r145409;
double r145411 = sqrt(r145410);
double r145412 = 0.5;
double r145413 = z;
double r145414 = -r145413;
double r145415 = 7.0;
double r145416 = r145414 + r145415;
double r145417 = r145412 + r145416;
double r145418 = r145412 + r145414;
double r145419 = pow(r145417, r145418);
double r145420 = exp(r145417);
double r145421 = r145419 / r145420;
double r145422 = r145411 * r145421;
double r145423 = r145408 * r145413;
double r145424 = sin(r145423);
double r145425 = r145408 / r145424;
double r145426 = 12.507343278686905;
double r145427 = 5.0;
double r145428 = r145427 + r145414;
double r145429 = r145426 / r145428;
double r145430 = -0.13857109526572012;
double r145431 = 6.0;
double r145432 = r145431 + r145414;
double r145433 = r145430 / r145432;
double r145434 = -1259.1392167224028;
double r145435 = r145414 + r145409;
double r145436 = r145434 / r145435;
double r145437 = r145433 + r145436;
double r145438 = 676.5203681218851;
double r145439 = 1.0;
double r145440 = r145439 - r145413;
double r145441 = r145438 / r145440;
double r145442 = 771.3234287776531;
double r145443 = 3.0;
double r145444 = r145443 + r145414;
double r145445 = r145442 / r145444;
double r145446 = 0.9999999999998099;
double r145447 = r145445 + r145446;
double r145448 = r145441 + r145447;
double r145449 = r145437 + r145448;
double r145450 = cbrt(r145449);
double r145451 = r145450 * r145450;
double r145452 = -176.6150291621406;
double r145453 = 4.0;
double r145454 = r145414 + r145453;
double r145455 = r145452 / r145454;
double r145456 = fma(r145451, r145450, r145455);
double r145457 = 1.5056327351493116e-07;
double r145458 = 8.0;
double r145459 = r145414 + r145458;
double r145460 = r145457 / r145459;
double r145461 = 9.984369578019572e-06;
double r145462 = r145461 / r145416;
double r145463 = r145460 + r145462;
double r145464 = r145456 + r145463;
double r145465 = r145429 + r145464;
double r145466 = r145425 * r145465;
double r145467 = r145422 * r145466;
return r145467;
}



Bits error versus z
Initial program 1.8
Simplified1.8
rmApplied add-cube-cbrt1.0
Applied fma-def1.0
Final simplification1.0
herbie shell --seed 2020046 +o rules:numerics
(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.9999999999998099 (/ 676.5203681218851 (+ (- (- 1 z) 1) 1))) (/ -1259.1392167224028 (+ (- (- 1 z) 1) 2))) (/ 771.3234287776531 (+ (- (- 1 z) 1) 3))) (/ -176.6150291621406 (+ (- (- 1 z) 1) 4))) (/ 12.507343278686905 (+ (- (- 1 z) 1) 5))) (/ -0.13857109526572012 (+ (- (- 1 z) 1) 6))) (/ 9.984369578019572e-06 (+ (- (- 1 z) 1) 7))) (/ 1.5056327351493116e-07 (+ (- (- 1 z) 1) 8))))))