\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(\sqrt{\pi \cdot 2} \cdot \frac{\pi}{\sin \left(\pi \cdot z\right)}\right) \cdot \frac{{\left(\left(7 - z\right) + 0.5\right)}^{\left(0.5 + \left(-z\right)\right)}}{e^{\left(7 - z\right) + 0.5}}\right) \cdot \left(\left(\left(\frac{676.5203681218851}{1 - z} + \left(\frac{771.3234287776531}{\left(1 - z\right) + 2} + 0.9999999999998099\right)\right) + \left(\frac{-1259.1392167224028}{2 - z} + \frac{-176.6150291621406}{4 - z}\right)\right) + \left(\left(\frac{1.5056327351493116 \cdot 10^{-07}}{8 - z} + \left(\frac{-0.13857109526572012}{6 - z} + \frac{9.984369578019572 \cdot 10^{-06}}{7 - z}\right)\right) + \frac{12.507343278686905}{\left(-z\right) - -5}\right)\right)double f(double z) {
double r3683195 = atan2(1.0, 0.0);
double r3683196 = z;
double r3683197 = r3683195 * r3683196;
double r3683198 = sin(r3683197);
double r3683199 = r3683195 / r3683198;
double r3683200 = 2.0;
double r3683201 = r3683195 * r3683200;
double r3683202 = sqrt(r3683201);
double r3683203 = 1.0;
double r3683204 = r3683203 - r3683196;
double r3683205 = r3683204 - r3683203;
double r3683206 = 7.0;
double r3683207 = r3683205 + r3683206;
double r3683208 = 0.5;
double r3683209 = r3683207 + r3683208;
double r3683210 = r3683205 + r3683208;
double r3683211 = pow(r3683209, r3683210);
double r3683212 = r3683202 * r3683211;
double r3683213 = -r3683209;
double r3683214 = exp(r3683213);
double r3683215 = r3683212 * r3683214;
double r3683216 = 0.9999999999998099;
double r3683217 = 676.5203681218851;
double r3683218 = r3683205 + r3683203;
double r3683219 = r3683217 / r3683218;
double r3683220 = r3683216 + r3683219;
double r3683221 = -1259.1392167224028;
double r3683222 = r3683205 + r3683200;
double r3683223 = r3683221 / r3683222;
double r3683224 = r3683220 + r3683223;
double r3683225 = 771.3234287776531;
double r3683226 = 3.0;
double r3683227 = r3683205 + r3683226;
double r3683228 = r3683225 / r3683227;
double r3683229 = r3683224 + r3683228;
double r3683230 = -176.6150291621406;
double r3683231 = 4.0;
double r3683232 = r3683205 + r3683231;
double r3683233 = r3683230 / r3683232;
double r3683234 = r3683229 + r3683233;
double r3683235 = 12.507343278686905;
double r3683236 = 5.0;
double r3683237 = r3683205 + r3683236;
double r3683238 = r3683235 / r3683237;
double r3683239 = r3683234 + r3683238;
double r3683240 = -0.13857109526572012;
double r3683241 = 6.0;
double r3683242 = r3683205 + r3683241;
double r3683243 = r3683240 / r3683242;
double r3683244 = r3683239 + r3683243;
double r3683245 = 9.984369578019572e-06;
double r3683246 = r3683245 / r3683207;
double r3683247 = r3683244 + r3683246;
double r3683248 = 1.5056327351493116e-07;
double r3683249 = 8.0;
double r3683250 = r3683205 + r3683249;
double r3683251 = r3683248 / r3683250;
double r3683252 = r3683247 + r3683251;
double r3683253 = r3683215 * r3683252;
double r3683254 = r3683199 * r3683253;
return r3683254;
}
double f(double z) {
double r3683255 = atan2(1.0, 0.0);
double r3683256 = 2.0;
double r3683257 = r3683255 * r3683256;
double r3683258 = sqrt(r3683257);
double r3683259 = z;
double r3683260 = r3683255 * r3683259;
double r3683261 = sin(r3683260);
double r3683262 = r3683255 / r3683261;
double r3683263 = r3683258 * r3683262;
double r3683264 = 7.0;
double r3683265 = r3683264 - r3683259;
double r3683266 = 0.5;
double r3683267 = r3683265 + r3683266;
double r3683268 = -r3683259;
double r3683269 = r3683266 + r3683268;
double r3683270 = pow(r3683267, r3683269);
double r3683271 = exp(r3683267);
double r3683272 = r3683270 / r3683271;
double r3683273 = r3683263 * r3683272;
double r3683274 = 676.5203681218851;
double r3683275 = 1.0;
double r3683276 = r3683275 - r3683259;
double r3683277 = r3683274 / r3683276;
double r3683278 = 771.3234287776531;
double r3683279 = r3683276 + r3683256;
double r3683280 = r3683278 / r3683279;
double r3683281 = 0.9999999999998099;
double r3683282 = r3683280 + r3683281;
double r3683283 = r3683277 + r3683282;
double r3683284 = -1259.1392167224028;
double r3683285 = r3683256 - r3683259;
double r3683286 = r3683284 / r3683285;
double r3683287 = -176.6150291621406;
double r3683288 = 4.0;
double r3683289 = r3683288 - r3683259;
double r3683290 = r3683287 / r3683289;
double r3683291 = r3683286 + r3683290;
double r3683292 = r3683283 + r3683291;
double r3683293 = 1.5056327351493116e-07;
double r3683294 = 8.0;
double r3683295 = r3683294 - r3683259;
double r3683296 = r3683293 / r3683295;
double r3683297 = -0.13857109526572012;
double r3683298 = 6.0;
double r3683299 = r3683298 - r3683259;
double r3683300 = r3683297 / r3683299;
double r3683301 = 9.984369578019572e-06;
double r3683302 = r3683301 / r3683265;
double r3683303 = r3683300 + r3683302;
double r3683304 = r3683296 + r3683303;
double r3683305 = 12.507343278686905;
double r3683306 = -5.0;
double r3683307 = r3683268 - r3683306;
double r3683308 = r3683305 / r3683307;
double r3683309 = r3683304 + r3683308;
double r3683310 = r3683292 + r3683309;
double r3683311 = r3683273 * r3683310;
return r3683311;
}



Bits error versus z
Results
Initial program 1.8
Simplified1.7
rmApplied associate-+r+0.7
Final simplification0.7
herbie shell --seed 2019130
(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))))))