\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(e^{z - 0.5} \cdot \frac{{\left(\sqrt{7 - \left(z - 0.5\right)}\right)}^{\left(0.5 - z\right)}}{\frac{e^{7}}{{\left(\sqrt{7 - \left(z - 0.5\right)}\right)}^{\left(0.5 - z\right)}}}\right) \cdot \left(\left(\left(\frac{1.5056327351493116 \cdot 10^{-07}}{8 - z} + \frac{9.984369578019572 \cdot 10^{-06}}{7 - z}\right) + \left(\left(\left(\frac{771.3234287776531}{\left(1 - z\right) + 2} + \frac{-176.6150291621406}{\left(\left(1 - z\right) + 2\right) + 1}\right) + \frac{-0.13857109526572012}{6 - z}\right) + \left(0.9999999999998099 + \left(\frac{-1259.1392167224028}{2 - z} + \frac{676.5203681218851}{1 - z}\right)\right)\right)\right) + \frac{12.507343278686905}{5 - z}\right)\right) \cdot \frac{\pi}{\sin \left(z \cdot \pi\right)}\right) \cdot \sqrt{2 \cdot \pi}double f(double z) {
double r9584199 = atan2(1.0, 0.0);
double r9584200 = z;
double r9584201 = r9584199 * r9584200;
double r9584202 = sin(r9584201);
double r9584203 = r9584199 / r9584202;
double r9584204 = 2.0;
double r9584205 = r9584199 * r9584204;
double r9584206 = sqrt(r9584205);
double r9584207 = 1.0;
double r9584208 = r9584207 - r9584200;
double r9584209 = r9584208 - r9584207;
double r9584210 = 7.0;
double r9584211 = r9584209 + r9584210;
double r9584212 = 0.5;
double r9584213 = r9584211 + r9584212;
double r9584214 = r9584209 + r9584212;
double r9584215 = pow(r9584213, r9584214);
double r9584216 = r9584206 * r9584215;
double r9584217 = -r9584213;
double r9584218 = exp(r9584217);
double r9584219 = r9584216 * r9584218;
double r9584220 = 0.9999999999998099;
double r9584221 = 676.5203681218851;
double r9584222 = r9584209 + r9584207;
double r9584223 = r9584221 / r9584222;
double r9584224 = r9584220 + r9584223;
double r9584225 = -1259.1392167224028;
double r9584226 = r9584209 + r9584204;
double r9584227 = r9584225 / r9584226;
double r9584228 = r9584224 + r9584227;
double r9584229 = 771.3234287776531;
double r9584230 = 3.0;
double r9584231 = r9584209 + r9584230;
double r9584232 = r9584229 / r9584231;
double r9584233 = r9584228 + r9584232;
double r9584234 = -176.6150291621406;
double r9584235 = 4.0;
double r9584236 = r9584209 + r9584235;
double r9584237 = r9584234 / r9584236;
double r9584238 = r9584233 + r9584237;
double r9584239 = 12.507343278686905;
double r9584240 = 5.0;
double r9584241 = r9584209 + r9584240;
double r9584242 = r9584239 / r9584241;
double r9584243 = r9584238 + r9584242;
double r9584244 = -0.13857109526572012;
double r9584245 = 6.0;
double r9584246 = r9584209 + r9584245;
double r9584247 = r9584244 / r9584246;
double r9584248 = r9584243 + r9584247;
double r9584249 = 9.984369578019572e-06;
double r9584250 = r9584249 / r9584211;
double r9584251 = r9584248 + r9584250;
double r9584252 = 1.5056327351493116e-07;
double r9584253 = 8.0;
double r9584254 = r9584209 + r9584253;
double r9584255 = r9584252 / r9584254;
double r9584256 = r9584251 + r9584255;
double r9584257 = r9584219 * r9584256;
double r9584258 = r9584203 * r9584257;
return r9584258;
}
double f(double z) {
double r9584259 = z;
double r9584260 = 0.5;
double r9584261 = r9584259 - r9584260;
double r9584262 = exp(r9584261);
double r9584263 = 7.0;
double r9584264 = r9584263 - r9584261;
double r9584265 = sqrt(r9584264);
double r9584266 = r9584260 - r9584259;
double r9584267 = pow(r9584265, r9584266);
double r9584268 = exp(r9584263);
double r9584269 = r9584268 / r9584267;
double r9584270 = r9584267 / r9584269;
double r9584271 = r9584262 * r9584270;
double r9584272 = 1.5056327351493116e-07;
double r9584273 = 8.0;
double r9584274 = r9584273 - r9584259;
double r9584275 = r9584272 / r9584274;
double r9584276 = 9.984369578019572e-06;
double r9584277 = r9584263 - r9584259;
double r9584278 = r9584276 / r9584277;
double r9584279 = r9584275 + r9584278;
double r9584280 = 771.3234287776531;
double r9584281 = 1.0;
double r9584282 = r9584281 - r9584259;
double r9584283 = 2.0;
double r9584284 = r9584282 + r9584283;
double r9584285 = r9584280 / r9584284;
double r9584286 = -176.6150291621406;
double r9584287 = r9584284 + r9584281;
double r9584288 = r9584286 / r9584287;
double r9584289 = r9584285 + r9584288;
double r9584290 = -0.13857109526572012;
double r9584291 = 6.0;
double r9584292 = r9584291 - r9584259;
double r9584293 = r9584290 / r9584292;
double r9584294 = r9584289 + r9584293;
double r9584295 = 0.9999999999998099;
double r9584296 = -1259.1392167224028;
double r9584297 = r9584283 - r9584259;
double r9584298 = r9584296 / r9584297;
double r9584299 = 676.5203681218851;
double r9584300 = r9584299 / r9584282;
double r9584301 = r9584298 + r9584300;
double r9584302 = r9584295 + r9584301;
double r9584303 = r9584294 + r9584302;
double r9584304 = r9584279 + r9584303;
double r9584305 = 12.507343278686905;
double r9584306 = 5.0;
double r9584307 = r9584306 - r9584259;
double r9584308 = r9584305 / r9584307;
double r9584309 = r9584304 + r9584308;
double r9584310 = r9584271 * r9584309;
double r9584311 = atan2(1.0, 0.0);
double r9584312 = r9584259 * r9584311;
double r9584313 = sin(r9584312);
double r9584314 = r9584311 / r9584313;
double r9584315 = r9584310 * r9584314;
double r9584316 = r9584283 * r9584311;
double r9584317 = sqrt(r9584316);
double r9584318 = r9584315 * r9584317;
return r9584318;
}



Bits error versus z
Results
Initial program 1.8
Simplified0.5
rmApplied associate-+l-0.5
Applied exp-diff0.5
Applied associate-/r/0.5
Simplified0.5
rmApplied add-sqr-sqrt0.5
Applied unpow-prod-down0.5
Applied associate-/l*0.5
Final simplification0.5
herbie shell --seed 2019162 +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))))))