\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(\sqrt{2 \cdot \pi} \cdot {\left(\left(7 + \left(\left(1 - z\right) - 1\right)\right) + 0.5\right)}^{\left(0.5 + \left(\left(1 - z\right) - 1\right)\right)}\right) \cdot e^{-\left(\left(7 + \left(\left(1 - z\right) - 1\right)\right) + 0.5\right)}\right) \cdot \left(\frac{1.5056327351493116 \cdot 10^{-07}}{8 + \left(\left(1 - z\right) - 1\right)} + \left(\frac{9.984369578019572 \cdot 10^{-06}}{7 + \left(\left(1 - z\right) - 1\right)} + \left(\left(\left(\frac{-176.6150291621406}{\left(\left(1 - z\right) - 1\right) + 4} + \left(\frac{771.3234287776531}{3 + \left(\left(1 - z\right) - 1\right)} + \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)\right)\right) + \frac{12.507343278686905}{\left(\left(1 - z\right) - 1\right) + 5}\right) + \frac{-0.13857109526572012}{6 + \left(\left(1 - z\right) - 1\right)}\right)\right)\right)\right) \cdot \frac{\pi}{\sin \left(\pi \cdot z\right)}double f(double z) {
double r14030194 = atan2(1.0, 0.0);
double r14030195 = z;
double r14030196 = r14030194 * r14030195;
double r14030197 = sin(r14030196);
double r14030198 = r14030194 / r14030197;
double r14030199 = 2.0;
double r14030200 = r14030194 * r14030199;
double r14030201 = sqrt(r14030200);
double r14030202 = 1.0;
double r14030203 = r14030202 - r14030195;
double r14030204 = r14030203 - r14030202;
double r14030205 = 7.0;
double r14030206 = r14030204 + r14030205;
double r14030207 = 0.5;
double r14030208 = r14030206 + r14030207;
double r14030209 = r14030204 + r14030207;
double r14030210 = pow(r14030208, r14030209);
double r14030211 = r14030201 * r14030210;
double r14030212 = -r14030208;
double r14030213 = exp(r14030212);
double r14030214 = r14030211 * r14030213;
double r14030215 = 0.9999999999998099;
double r14030216 = 676.5203681218851;
double r14030217 = r14030204 + r14030202;
double r14030218 = r14030216 / r14030217;
double r14030219 = r14030215 + r14030218;
double r14030220 = -1259.1392167224028;
double r14030221 = r14030204 + r14030199;
double r14030222 = r14030220 / r14030221;
double r14030223 = r14030219 + r14030222;
double r14030224 = 771.3234287776531;
double r14030225 = 3.0;
double r14030226 = r14030204 + r14030225;
double r14030227 = r14030224 / r14030226;
double r14030228 = r14030223 + r14030227;
double r14030229 = -176.6150291621406;
double r14030230 = 4.0;
double r14030231 = r14030204 + r14030230;
double r14030232 = r14030229 / r14030231;
double r14030233 = r14030228 + r14030232;
double r14030234 = 12.507343278686905;
double r14030235 = 5.0;
double r14030236 = r14030204 + r14030235;
double r14030237 = r14030234 / r14030236;
double r14030238 = r14030233 + r14030237;
double r14030239 = -0.13857109526572012;
double r14030240 = 6.0;
double r14030241 = r14030204 + r14030240;
double r14030242 = r14030239 / r14030241;
double r14030243 = r14030238 + r14030242;
double r14030244 = 9.984369578019572e-06;
double r14030245 = r14030244 / r14030206;
double r14030246 = r14030243 + r14030245;
double r14030247 = 1.5056327351493116e-07;
double r14030248 = 8.0;
double r14030249 = r14030204 + r14030248;
double r14030250 = r14030247 / r14030249;
double r14030251 = r14030246 + r14030250;
double r14030252 = r14030214 * r14030251;
double r14030253 = r14030198 * r14030252;
return r14030253;
}
double f(double z) {
double r14030254 = 2.0;
double r14030255 = atan2(1.0, 0.0);
double r14030256 = r14030254 * r14030255;
double r14030257 = sqrt(r14030256);
double r14030258 = 7.0;
double r14030259 = 1.0;
double r14030260 = z;
double r14030261 = r14030259 - r14030260;
double r14030262 = r14030261 - r14030259;
double r14030263 = r14030258 + r14030262;
double r14030264 = 0.5;
double r14030265 = r14030263 + r14030264;
double r14030266 = r14030264 + r14030262;
double r14030267 = pow(r14030265, r14030266);
double r14030268 = r14030257 * r14030267;
double r14030269 = -r14030265;
double r14030270 = exp(r14030269);
double r14030271 = r14030268 * r14030270;
double r14030272 = 1.5056327351493116e-07;
double r14030273 = 8.0;
double r14030274 = r14030273 + r14030262;
double r14030275 = r14030272 / r14030274;
double r14030276 = 9.984369578019572e-06;
double r14030277 = r14030276 / r14030263;
double r14030278 = -176.6150291621406;
double r14030279 = 4.0;
double r14030280 = r14030262 + r14030279;
double r14030281 = r14030278 / r14030280;
double r14030282 = 771.3234287776531;
double r14030283 = 3.0;
double r14030284 = r14030283 + r14030262;
double r14030285 = r14030282 / r14030284;
double r14030286 = 0.9999999999998099;
double r14030287 = 676.5203681218851;
double r14030288 = r14030262 + r14030259;
double r14030289 = r14030287 / r14030288;
double r14030290 = r14030286 + r14030289;
double r14030291 = -1259.1392167224028;
double r14030292 = r14030262 + r14030254;
double r14030293 = r14030291 / r14030292;
double r14030294 = r14030290 + r14030293;
double r14030295 = r14030285 + r14030294;
double r14030296 = r14030281 + r14030295;
double r14030297 = 12.507343278686905;
double r14030298 = 5.0;
double r14030299 = r14030262 + r14030298;
double r14030300 = r14030297 / r14030299;
double r14030301 = r14030296 + r14030300;
double r14030302 = -0.13857109526572012;
double r14030303 = 6.0;
double r14030304 = r14030303 + r14030262;
double r14030305 = r14030302 / r14030304;
double r14030306 = r14030301 + r14030305;
double r14030307 = r14030277 + r14030306;
double r14030308 = r14030275 + r14030307;
double r14030309 = r14030271 * r14030308;
double r14030310 = r14030255 * r14030260;
double r14030311 = sin(r14030310);
double r14030312 = r14030255 / r14030311;
double r14030313 = r14030309 * r14030312;
return r14030313;
}



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