\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.9999999999998099 + \frac{676.5203681218851}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.1392167224028}{\left(\left(1 - z\right) - 1\right) + 2}\right) + \frac{771.3234287776531}{\left(\left(1 - z\right) - 1\right) + 3}\right) + \frac{-176.6150291621406}{\left(\left(1 - z\right) - 1\right) + 4}\right) + \frac{12.507343278686905}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.13857109526572012}{\left(\left(1 - z\right) - 1\right) + 6}\right) + \frac{9.984369578019572 \cdot 10^{-06}}{\left(\left(1 - z\right) - 1\right) + 7}\right) + \frac{1.5056327351493116 \cdot 10^{-07}}{\left(\left(1 - z\right) - 1\right) + 8}\right)\right)\left(\left(\left(\sqrt{2 \cdot \pi} \cdot {\left(\left(7 + \left(\left(1 - z\right) - 1\right)\right) + 0.5\right)}^{\left(0.5 + \left(\left(1 - z\right) - 1\right)\right)}\right) \cdot e^{-\left(\left(7 + \left(\left(1 - z\right) - 1\right)\right) + 0.5\right)}\right) \cdot \left(\frac{1.5056327351493116 \cdot 10^{-07}}{8 + \left(\left(1 - z\right) - 1\right)} + \left(\frac{9.984369578019572 \cdot 10^{-06}}{7 + \left(\left(1 - z\right) - 1\right)} + \left(\left(\left(\frac{-176.6150291621406}{\left(\left(1 - z\right) - 1\right) + 4} + \left(\frac{771.3234287776531}{3 + \left(\left(1 - z\right) - 1\right)} + \left(\left(0.9999999999998099 + \frac{676.5203681218851}{\left(\left(1 - z\right) - 1\right) + 1}\right) + \frac{-1259.1392167224028}{\left(\left(1 - z\right) - 1\right) + 2}\right)\right)\right) + \frac{12.507343278686905}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.13857109526572012}{6 + \left(\left(1 - z\right) - 1\right)}\right)\right)\right)\right) \cdot \frac{\pi}{\sin \left(\pi \cdot z\right)}double f(double z) {
double r2021326 = atan2(1.0, 0.0);
double r2021327 = z;
double r2021328 = r2021326 * r2021327;
double r2021329 = sin(r2021328);
double r2021330 = r2021326 / r2021329;
double r2021331 = 2.0;
double r2021332 = r2021326 * r2021331;
double r2021333 = sqrt(r2021332);
double r2021334 = 1.0;
double r2021335 = r2021334 - r2021327;
double r2021336 = r2021335 - r2021334;
double r2021337 = 7.0;
double r2021338 = r2021336 + r2021337;
double r2021339 = 0.5;
double r2021340 = r2021338 + r2021339;
double r2021341 = r2021336 + r2021339;
double r2021342 = pow(r2021340, r2021341);
double r2021343 = r2021333 * r2021342;
double r2021344 = -r2021340;
double r2021345 = exp(r2021344);
double r2021346 = r2021343 * r2021345;
double r2021347 = 0.9999999999998099;
double r2021348 = 676.5203681218851;
double r2021349 = r2021336 + r2021334;
double r2021350 = r2021348 / r2021349;
double r2021351 = r2021347 + r2021350;
double r2021352 = -1259.1392167224028;
double r2021353 = r2021336 + r2021331;
double r2021354 = r2021352 / r2021353;
double r2021355 = r2021351 + r2021354;
double r2021356 = 771.3234287776531;
double r2021357 = 3.0;
double r2021358 = r2021336 + r2021357;
double r2021359 = r2021356 / r2021358;
double r2021360 = r2021355 + r2021359;
double r2021361 = -176.6150291621406;
double r2021362 = 4.0;
double r2021363 = r2021336 + r2021362;
double r2021364 = r2021361 / r2021363;
double r2021365 = r2021360 + r2021364;
double r2021366 = 12.507343278686905;
double r2021367 = 5.0;
double r2021368 = r2021336 + r2021367;
double r2021369 = r2021366 / r2021368;
double r2021370 = r2021365 + r2021369;
double r2021371 = -0.13857109526572012;
double r2021372 = 6.0;
double r2021373 = r2021336 + r2021372;
double r2021374 = r2021371 / r2021373;
double r2021375 = r2021370 + r2021374;
double r2021376 = 9.984369578019572e-06;
double r2021377 = r2021376 / r2021338;
double r2021378 = r2021375 + r2021377;
double r2021379 = 1.5056327351493116e-07;
double r2021380 = 8.0;
double r2021381 = r2021336 + r2021380;
double r2021382 = r2021379 / r2021381;
double r2021383 = r2021378 + r2021382;
double r2021384 = r2021346 * r2021383;
double r2021385 = r2021330 * r2021384;
return r2021385;
}
double f(double z) {
double r2021386 = 2.0;
double r2021387 = atan2(1.0, 0.0);
double r2021388 = r2021386 * r2021387;
double r2021389 = sqrt(r2021388);
double r2021390 = 7.0;
double r2021391 = 1.0;
double r2021392 = z;
double r2021393 = r2021391 - r2021392;
double r2021394 = r2021393 - r2021391;
double r2021395 = r2021390 + r2021394;
double r2021396 = 0.5;
double r2021397 = r2021395 + r2021396;
double r2021398 = r2021396 + r2021394;
double r2021399 = pow(r2021397, r2021398);
double r2021400 = r2021389 * r2021399;
double r2021401 = -r2021397;
double r2021402 = exp(r2021401);
double r2021403 = r2021400 * r2021402;
double r2021404 = 1.5056327351493116e-07;
double r2021405 = 8.0;
double r2021406 = r2021405 + r2021394;
double r2021407 = r2021404 / r2021406;
double r2021408 = 9.984369578019572e-06;
double r2021409 = r2021408 / r2021395;
double r2021410 = -176.6150291621406;
double r2021411 = 4.0;
double r2021412 = r2021394 + r2021411;
double r2021413 = r2021410 / r2021412;
double r2021414 = 771.3234287776531;
double r2021415 = 3.0;
double r2021416 = r2021415 + r2021394;
double r2021417 = r2021414 / r2021416;
double r2021418 = 0.9999999999998099;
double r2021419 = 676.5203681218851;
double r2021420 = r2021394 + r2021391;
double r2021421 = r2021419 / r2021420;
double r2021422 = r2021418 + r2021421;
double r2021423 = -1259.1392167224028;
double r2021424 = r2021394 + r2021386;
double r2021425 = r2021423 / r2021424;
double r2021426 = r2021422 + r2021425;
double r2021427 = r2021417 + r2021426;
double r2021428 = r2021413 + r2021427;
double r2021429 = 12.507343278686905;
double r2021430 = 5.0;
double r2021431 = r2021394 + r2021430;
double r2021432 = r2021429 / r2021431;
double r2021433 = r2021428 + r2021432;
double r2021434 = -0.13857109526572012;
double r2021435 = 6.0;
double r2021436 = r2021435 + r2021394;
double r2021437 = r2021434 / r2021436;
double r2021438 = r2021433 + r2021437;
double r2021439 = r2021409 + r2021438;
double r2021440 = r2021407 + r2021439;
double r2021441 = r2021403 * r2021440;
double r2021442 = r2021387 * r2021392;
double r2021443 = sin(r2021442);
double r2021444 = r2021387 / r2021443;
double r2021445 = r2021441 * r2021444;
return r2021445;
}



Bits error versus z
Results
Initial program 1.8
Final simplification1.8
herbie shell --seed 2019156 +o rules:numerics
(FPCore (z)
:name "Jmat.Real.gamma, branch z less than 0.5"
(* (/ 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))))))