\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{\left(\left(\pi \cdot \sqrt{\pi \cdot 2}\right) \cdot {\left(0.5 + \left(7 - z\right)\right)}^{\left(0.5 - z\right)}\right) \cdot \left(\frac{-0.138571095265720118}{6 - z} + \left(\frac{771.32342877765313}{3 - z} + \left(\left(\frac{12.5073432786869052}{5 - z} + \left(0.99999999999980993 + \left(\left(\frac{676.520368121885099}{1 - z} + \frac{-1259.13921672240281}{2 - z}\right) + \frac{-176.615029162140587}{4 - z}\right)\right)\right) + \left(\frac{1.50563273514931162 \cdot 10^{-7}}{8 - z} + \frac{9.98436957801957158 \cdot 10^{-6}}{7 - z}\right)\right)\right)\right)}{e^{0.5 + \left(7 - z\right)} \cdot \sin \left(\pi \cdot z\right)}double f(double z) {
double r283224 = atan2(1.0, 0.0);
double r283225 = z;
double r283226 = r283224 * r283225;
double r283227 = sin(r283226);
double r283228 = r283224 / r283227;
double r283229 = 2.0;
double r283230 = r283224 * r283229;
double r283231 = sqrt(r283230);
double r283232 = 1.0;
double r283233 = r283232 - r283225;
double r283234 = r283233 - r283232;
double r283235 = 7.0;
double r283236 = r283234 + r283235;
double r283237 = 0.5;
double r283238 = r283236 + r283237;
double r283239 = r283234 + r283237;
double r283240 = pow(r283238, r283239);
double r283241 = r283231 * r283240;
double r283242 = -r283238;
double r283243 = exp(r283242);
double r283244 = r283241 * r283243;
double r283245 = 0.9999999999998099;
double r283246 = 676.5203681218851;
double r283247 = r283234 + r283232;
double r283248 = r283246 / r283247;
double r283249 = r283245 + r283248;
double r283250 = -1259.1392167224028;
double r283251 = r283234 + r283229;
double r283252 = r283250 / r283251;
double r283253 = r283249 + r283252;
double r283254 = 771.3234287776531;
double r283255 = 3.0;
double r283256 = r283234 + r283255;
double r283257 = r283254 / r283256;
double r283258 = r283253 + r283257;
double r283259 = -176.6150291621406;
double r283260 = 4.0;
double r283261 = r283234 + r283260;
double r283262 = r283259 / r283261;
double r283263 = r283258 + r283262;
double r283264 = 12.507343278686905;
double r283265 = 5.0;
double r283266 = r283234 + r283265;
double r283267 = r283264 / r283266;
double r283268 = r283263 + r283267;
double r283269 = -0.13857109526572012;
double r283270 = 6.0;
double r283271 = r283234 + r283270;
double r283272 = r283269 / r283271;
double r283273 = r283268 + r283272;
double r283274 = 9.984369578019572e-06;
double r283275 = r283274 / r283236;
double r283276 = r283273 + r283275;
double r283277 = 1.5056327351493116e-07;
double r283278 = 8.0;
double r283279 = r283234 + r283278;
double r283280 = r283277 / r283279;
double r283281 = r283276 + r283280;
double r283282 = r283244 * r283281;
double r283283 = r283228 * r283282;
return r283283;
}
double f(double z) {
double r283284 = atan2(1.0, 0.0);
double r283285 = 2.0;
double r283286 = r283284 * r283285;
double r283287 = sqrt(r283286);
double r283288 = r283284 * r283287;
double r283289 = 0.5;
double r283290 = 7.0;
double r283291 = z;
double r283292 = r283290 - r283291;
double r283293 = r283289 + r283292;
double r283294 = r283289 - r283291;
double r283295 = pow(r283293, r283294);
double r283296 = r283288 * r283295;
double r283297 = -0.13857109526572012;
double r283298 = 6.0;
double r283299 = r283298 - r283291;
double r283300 = r283297 / r283299;
double r283301 = 771.3234287776531;
double r283302 = 3.0;
double r283303 = r283302 - r283291;
double r283304 = r283301 / r283303;
double r283305 = 12.507343278686905;
double r283306 = 5.0;
double r283307 = r283306 - r283291;
double r283308 = r283305 / r283307;
double r283309 = 0.9999999999998099;
double r283310 = 676.5203681218851;
double r283311 = 1.0;
double r283312 = r283311 - r283291;
double r283313 = r283310 / r283312;
double r283314 = -1259.1392167224028;
double r283315 = r283285 - r283291;
double r283316 = r283314 / r283315;
double r283317 = r283313 + r283316;
double r283318 = -176.6150291621406;
double r283319 = 4.0;
double r283320 = r283319 - r283291;
double r283321 = r283318 / r283320;
double r283322 = r283317 + r283321;
double r283323 = r283309 + r283322;
double r283324 = r283308 + r283323;
double r283325 = 1.5056327351493116e-07;
double r283326 = 8.0;
double r283327 = r283326 - r283291;
double r283328 = r283325 / r283327;
double r283329 = 9.984369578019572e-06;
double r283330 = r283329 / r283292;
double r283331 = r283328 + r283330;
double r283332 = r283324 + r283331;
double r283333 = r283304 + r283332;
double r283334 = r283300 + r283333;
double r283335 = r283296 * r283334;
double r283336 = exp(r283293);
double r283337 = r283284 * r283291;
double r283338 = sin(r283337);
double r283339 = r283336 * r283338;
double r283340 = r283335 / r283339;
return r283340;
}



Bits error versus z
Results
Initial program 1.8
Simplified1.1
rmApplied associate-*l/1.1
Applied associate-*l/1.2
Applied associate-*l/1.0
Applied associate-/l/0.4
Final simplification0.4
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))))))