\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)\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)double f(double z) {
double r176265 = atan2(1.0, 0.0);
double r176266 = z;
double r176267 = r176265 * r176266;
double r176268 = sin(r176267);
double r176269 = r176265 / r176268;
double r176270 = 2.0;
double r176271 = r176265 * r176270;
double r176272 = sqrt(r176271);
double r176273 = 1.0;
double r176274 = r176273 - r176266;
double r176275 = r176274 - r176273;
double r176276 = 7.0;
double r176277 = r176275 + r176276;
double r176278 = 0.5;
double r176279 = r176277 + r176278;
double r176280 = r176275 + r176278;
double r176281 = pow(r176279, r176280);
double r176282 = r176272 * r176281;
double r176283 = -r176279;
double r176284 = exp(r176283);
double r176285 = r176282 * r176284;
double r176286 = 0.9999999999998099;
double r176287 = 676.5203681218851;
double r176288 = r176275 + r176273;
double r176289 = r176287 / r176288;
double r176290 = r176286 + r176289;
double r176291 = -1259.1392167224028;
double r176292 = r176275 + r176270;
double r176293 = r176291 / r176292;
double r176294 = r176290 + r176293;
double r176295 = 771.3234287776531;
double r176296 = 3.0;
double r176297 = r176275 + r176296;
double r176298 = r176295 / r176297;
double r176299 = r176294 + r176298;
double r176300 = -176.6150291621406;
double r176301 = 4.0;
double r176302 = r176275 + r176301;
double r176303 = r176300 / r176302;
double r176304 = r176299 + r176303;
double r176305 = 12.507343278686905;
double r176306 = 5.0;
double r176307 = r176275 + r176306;
double r176308 = r176305 / r176307;
double r176309 = r176304 + r176308;
double r176310 = -0.13857109526572012;
double r176311 = 6.0;
double r176312 = r176275 + r176311;
double r176313 = r176310 / r176312;
double r176314 = r176309 + r176313;
double r176315 = 9.984369578019572e-06;
double r176316 = r176315 / r176277;
double r176317 = r176314 + r176316;
double r176318 = 1.5056327351493116e-07;
double r176319 = 8.0;
double r176320 = r176275 + r176319;
double r176321 = r176318 / r176320;
double r176322 = r176317 + r176321;
double r176323 = r176285 * r176322;
double r176324 = r176269 * r176323;
return r176324;
}
double f(double z) {
double r176325 = atan2(1.0, 0.0);
double r176326 = z;
double r176327 = r176325 * r176326;
double r176328 = sin(r176327);
double r176329 = r176325 / r176328;
double r176330 = 2.0;
double r176331 = r176325 * r176330;
double r176332 = sqrt(r176331);
double r176333 = 1.0;
double r176334 = r176333 - r176326;
double r176335 = r176334 - r176333;
double r176336 = 7.0;
double r176337 = r176335 + r176336;
double r176338 = 0.5;
double r176339 = r176337 + r176338;
double r176340 = r176335 + r176338;
double r176341 = pow(r176339, r176340);
double r176342 = r176332 * r176341;
double r176343 = -r176339;
double r176344 = exp(r176343);
double r176345 = r176342 * r176344;
double r176346 = 0.9999999999998099;
double r176347 = 676.5203681218851;
double r176348 = r176335 + r176333;
double r176349 = r176347 / r176348;
double r176350 = r176346 + r176349;
double r176351 = -1259.1392167224028;
double r176352 = r176335 + r176330;
double r176353 = r176351 / r176352;
double r176354 = r176350 + r176353;
double r176355 = 771.3234287776531;
double r176356 = 3.0;
double r176357 = r176335 + r176356;
double r176358 = r176355 / r176357;
double r176359 = r176354 + r176358;
double r176360 = -176.6150291621406;
double r176361 = 4.0;
double r176362 = r176335 + r176361;
double r176363 = r176360 / r176362;
double r176364 = r176359 + r176363;
double r176365 = 12.507343278686905;
double r176366 = 5.0;
double r176367 = r176335 + r176366;
double r176368 = r176365 / r176367;
double r176369 = r176364 + r176368;
double r176370 = -0.13857109526572012;
double r176371 = 6.0;
double r176372 = r176335 + r176371;
double r176373 = r176370 / r176372;
double r176374 = r176369 + r176373;
double r176375 = 9.984369578019572e-06;
double r176376 = r176375 / r176337;
double r176377 = r176374 + r176376;
double r176378 = 1.5056327351493116e-07;
double r176379 = 8.0;
double r176380 = r176335 + r176379;
double r176381 = r176378 / r176380;
double r176382 = r176377 + r176381;
double r176383 = r176345 * r176382;
double r176384 = r176329 * r176383;
return r176384;
}



Bits error versus z
Results
Initial program 1.8
Final simplification1.8
herbie shell --seed 2020039
(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))))))