\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(e^{\left(\left(0.5 - z\right) \cdot \log \left(7.5 - z\right) + z\right) - 7.5} \cdot \left(\frac{\pi}{\sin \left(\pi \cdot z\right)} \cdot \left(\left(\left(\left(\frac{12.507343278686905}{5 - z} + \frac{-0.13857109526572012}{6 - z}\right) + \frac{9.984369578019572 \cdot 10^{-06}}{7 - z}\right) + \frac{-176.6150291621406}{4 - z}\right) + \left(\left(\frac{676.5203681218851}{1 - z} + \left(\left(\frac{-1259.1392167224028}{2 - z} + 0.9999999999998099\right) + \frac{771.3234287776531}{3 - z}\right)\right) + \frac{1.5056327351493116 \cdot 10^{-07}}{8 - z}\right)\right)\right)\right) \cdot \sqrt{2 \cdot \pi}double f(double z) {
double r5350259 = atan2(1.0, 0.0);
double r5350260 = z;
double r5350261 = r5350259 * r5350260;
double r5350262 = sin(r5350261);
double r5350263 = r5350259 / r5350262;
double r5350264 = 2.0;
double r5350265 = r5350259 * r5350264;
double r5350266 = sqrt(r5350265);
double r5350267 = 1.0;
double r5350268 = r5350267 - r5350260;
double r5350269 = r5350268 - r5350267;
double r5350270 = 7.0;
double r5350271 = r5350269 + r5350270;
double r5350272 = 0.5;
double r5350273 = r5350271 + r5350272;
double r5350274 = r5350269 + r5350272;
double r5350275 = pow(r5350273, r5350274);
double r5350276 = r5350266 * r5350275;
double r5350277 = -r5350273;
double r5350278 = exp(r5350277);
double r5350279 = r5350276 * r5350278;
double r5350280 = 0.9999999999998099;
double r5350281 = 676.5203681218851;
double r5350282 = r5350269 + r5350267;
double r5350283 = r5350281 / r5350282;
double r5350284 = r5350280 + r5350283;
double r5350285 = -1259.1392167224028;
double r5350286 = r5350269 + r5350264;
double r5350287 = r5350285 / r5350286;
double r5350288 = r5350284 + r5350287;
double r5350289 = 771.3234287776531;
double r5350290 = 3.0;
double r5350291 = r5350269 + r5350290;
double r5350292 = r5350289 / r5350291;
double r5350293 = r5350288 + r5350292;
double r5350294 = -176.6150291621406;
double r5350295 = 4.0;
double r5350296 = r5350269 + r5350295;
double r5350297 = r5350294 / r5350296;
double r5350298 = r5350293 + r5350297;
double r5350299 = 12.507343278686905;
double r5350300 = 5.0;
double r5350301 = r5350269 + r5350300;
double r5350302 = r5350299 / r5350301;
double r5350303 = r5350298 + r5350302;
double r5350304 = -0.13857109526572012;
double r5350305 = 6.0;
double r5350306 = r5350269 + r5350305;
double r5350307 = r5350304 / r5350306;
double r5350308 = r5350303 + r5350307;
double r5350309 = 9.984369578019572e-06;
double r5350310 = r5350309 / r5350271;
double r5350311 = r5350308 + r5350310;
double r5350312 = 1.5056327351493116e-07;
double r5350313 = 8.0;
double r5350314 = r5350269 + r5350313;
double r5350315 = r5350312 / r5350314;
double r5350316 = r5350311 + r5350315;
double r5350317 = r5350279 * r5350316;
double r5350318 = r5350263 * r5350317;
return r5350318;
}
double f(double z) {
double r5350319 = 0.5;
double r5350320 = z;
double r5350321 = r5350319 - r5350320;
double r5350322 = 7.5;
double r5350323 = r5350322 - r5350320;
double r5350324 = log(r5350323);
double r5350325 = r5350321 * r5350324;
double r5350326 = r5350325 + r5350320;
double r5350327 = r5350326 - r5350322;
double r5350328 = exp(r5350327);
double r5350329 = atan2(1.0, 0.0);
double r5350330 = r5350329 * r5350320;
double r5350331 = sin(r5350330);
double r5350332 = r5350329 / r5350331;
double r5350333 = 12.507343278686905;
double r5350334 = 5.0;
double r5350335 = r5350334 - r5350320;
double r5350336 = r5350333 / r5350335;
double r5350337 = -0.13857109526572012;
double r5350338 = 6.0;
double r5350339 = r5350338 - r5350320;
double r5350340 = r5350337 / r5350339;
double r5350341 = r5350336 + r5350340;
double r5350342 = 9.984369578019572e-06;
double r5350343 = 7.0;
double r5350344 = r5350343 - r5350320;
double r5350345 = r5350342 / r5350344;
double r5350346 = r5350341 + r5350345;
double r5350347 = -176.6150291621406;
double r5350348 = 4.0;
double r5350349 = r5350348 - r5350320;
double r5350350 = r5350347 / r5350349;
double r5350351 = r5350346 + r5350350;
double r5350352 = 676.5203681218851;
double r5350353 = 1.0;
double r5350354 = r5350353 - r5350320;
double r5350355 = r5350352 / r5350354;
double r5350356 = -1259.1392167224028;
double r5350357 = 2.0;
double r5350358 = r5350357 - r5350320;
double r5350359 = r5350356 / r5350358;
double r5350360 = 0.9999999999998099;
double r5350361 = r5350359 + r5350360;
double r5350362 = 771.3234287776531;
double r5350363 = 3.0;
double r5350364 = r5350363 - r5350320;
double r5350365 = r5350362 / r5350364;
double r5350366 = r5350361 + r5350365;
double r5350367 = r5350355 + r5350366;
double r5350368 = 1.5056327351493116e-07;
double r5350369 = 8.0;
double r5350370 = r5350369 - r5350320;
double r5350371 = r5350368 / r5350370;
double r5350372 = r5350367 + r5350371;
double r5350373 = r5350351 + r5350372;
double r5350374 = r5350332 * r5350373;
double r5350375 = r5350328 * r5350374;
double r5350376 = r5350357 * r5350329;
double r5350377 = sqrt(r5350376);
double r5350378 = r5350375 * r5350377;
return r5350378;
}



Bits error versus z
Results
Initial program 1.8
Simplified1.2
rmApplied add-exp-log1.2
Applied pow-exp1.2
Applied div-exp0.8
Simplified0.8
Taylor expanded around inf 0.8
rmApplied add-exp-log0.8
Simplified0.8
Final simplification0.8
herbie shell --seed 2019162
(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))))))