\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(\frac{\pi}{\sin \left(\pi \cdot z\right)} \cdot \left({\left(0.5 + \left(\left(1 - z\right) - -6\right)\right)}^{\left(1 - \left(\left(z + 1\right) - 0.5\right)\right)} \cdot \sqrt{2 \cdot \pi}\right)\right) \cdot \left(\frac{1}{e^{0.5 + \left(\left(1 - z\right) - -6\right)}} \cdot \left(\left(\left(\frac{1.5056327351493116 \cdot 10^{-07}}{9 - \left(z + 1\right)} + \frac{9.984369578019572 \cdot 10^{-06}}{\left(1 - z\right) - -6}\right) + \left(\sqrt[3]{\frac{-0.13857109526572012}{7 - \left(z + 1\right)} + \frac{12.507343278686905}{6 - \left(z + 1\right)}} \cdot \sqrt[3]{\frac{-0.13857109526572012}{7 - \left(z + 1\right)} + \frac{12.507343278686905}{6 - \left(z + 1\right)}}\right) \cdot \sqrt[3]{\frac{-0.13857109526572012}{7 - \left(z + 1\right)} + \frac{12.507343278686905}{6 - \left(z + 1\right)}}\right) + \left(\frac{771.3234287776531}{2 + \left(1 - z\right)} + \left(\frac{-176.6150291621406}{5 - \left(z + 1\right)} + \log \left(e^{\left(\frac{-1259.1392167224028}{2 - z} + \frac{676.5203681218851}{1 - z}\right) + 0.9999999999998099}\right)\right)\right)\right)\right)double f(double z) {
double r6073212 = atan2(1.0, 0.0);
double r6073213 = z;
double r6073214 = r6073212 * r6073213;
double r6073215 = sin(r6073214);
double r6073216 = r6073212 / r6073215;
double r6073217 = 2.0;
double r6073218 = r6073212 * r6073217;
double r6073219 = sqrt(r6073218);
double r6073220 = 1.0;
double r6073221 = r6073220 - r6073213;
double r6073222 = r6073221 - r6073220;
double r6073223 = 7.0;
double r6073224 = r6073222 + r6073223;
double r6073225 = 0.5;
double r6073226 = r6073224 + r6073225;
double r6073227 = r6073222 + r6073225;
double r6073228 = pow(r6073226, r6073227);
double r6073229 = r6073219 * r6073228;
double r6073230 = -r6073226;
double r6073231 = exp(r6073230);
double r6073232 = r6073229 * r6073231;
double r6073233 = 0.9999999999998099;
double r6073234 = 676.5203681218851;
double r6073235 = r6073222 + r6073220;
double r6073236 = r6073234 / r6073235;
double r6073237 = r6073233 + r6073236;
double r6073238 = -1259.1392167224028;
double r6073239 = r6073222 + r6073217;
double r6073240 = r6073238 / r6073239;
double r6073241 = r6073237 + r6073240;
double r6073242 = 771.3234287776531;
double r6073243 = 3.0;
double r6073244 = r6073222 + r6073243;
double r6073245 = r6073242 / r6073244;
double r6073246 = r6073241 + r6073245;
double r6073247 = -176.6150291621406;
double r6073248 = 4.0;
double r6073249 = r6073222 + r6073248;
double r6073250 = r6073247 / r6073249;
double r6073251 = r6073246 + r6073250;
double r6073252 = 12.507343278686905;
double r6073253 = 5.0;
double r6073254 = r6073222 + r6073253;
double r6073255 = r6073252 / r6073254;
double r6073256 = r6073251 + r6073255;
double r6073257 = -0.13857109526572012;
double r6073258 = 6.0;
double r6073259 = r6073222 + r6073258;
double r6073260 = r6073257 / r6073259;
double r6073261 = r6073256 + r6073260;
double r6073262 = 9.984369578019572e-06;
double r6073263 = r6073262 / r6073224;
double r6073264 = r6073261 + r6073263;
double r6073265 = 1.5056327351493116e-07;
double r6073266 = 8.0;
double r6073267 = r6073222 + r6073266;
double r6073268 = r6073265 / r6073267;
double r6073269 = r6073264 + r6073268;
double r6073270 = r6073232 * r6073269;
double r6073271 = r6073216 * r6073270;
return r6073271;
}
double f(double z) {
double r6073272 = atan2(1.0, 0.0);
double r6073273 = z;
double r6073274 = r6073272 * r6073273;
double r6073275 = sin(r6073274);
double r6073276 = r6073272 / r6073275;
double r6073277 = 0.5;
double r6073278 = 1.0;
double r6073279 = r6073278 - r6073273;
double r6073280 = -6.0;
double r6073281 = r6073279 - r6073280;
double r6073282 = r6073277 + r6073281;
double r6073283 = r6073273 + r6073278;
double r6073284 = r6073283 - r6073277;
double r6073285 = r6073278 - r6073284;
double r6073286 = pow(r6073282, r6073285);
double r6073287 = 2.0;
double r6073288 = r6073287 * r6073272;
double r6073289 = sqrt(r6073288);
double r6073290 = r6073286 * r6073289;
double r6073291 = r6073276 * r6073290;
double r6073292 = exp(r6073282);
double r6073293 = r6073278 / r6073292;
double r6073294 = 1.5056327351493116e-07;
double r6073295 = 9.0;
double r6073296 = r6073295 - r6073283;
double r6073297 = r6073294 / r6073296;
double r6073298 = 9.984369578019572e-06;
double r6073299 = r6073298 / r6073281;
double r6073300 = r6073297 + r6073299;
double r6073301 = -0.13857109526572012;
double r6073302 = 7.0;
double r6073303 = r6073302 - r6073283;
double r6073304 = r6073301 / r6073303;
double r6073305 = 12.507343278686905;
double r6073306 = 6.0;
double r6073307 = r6073306 - r6073283;
double r6073308 = r6073305 / r6073307;
double r6073309 = r6073304 + r6073308;
double r6073310 = cbrt(r6073309);
double r6073311 = r6073310 * r6073310;
double r6073312 = r6073311 * r6073310;
double r6073313 = r6073300 + r6073312;
double r6073314 = 771.3234287776531;
double r6073315 = r6073287 + r6073279;
double r6073316 = r6073314 / r6073315;
double r6073317 = -176.6150291621406;
double r6073318 = 5.0;
double r6073319 = r6073318 - r6073283;
double r6073320 = r6073317 / r6073319;
double r6073321 = -1259.1392167224028;
double r6073322 = r6073287 - r6073273;
double r6073323 = r6073321 / r6073322;
double r6073324 = 676.5203681218851;
double r6073325 = r6073324 / r6073279;
double r6073326 = r6073323 + r6073325;
double r6073327 = 0.9999999999998099;
double r6073328 = r6073326 + r6073327;
double r6073329 = exp(r6073328);
double r6073330 = log(r6073329);
double r6073331 = r6073320 + r6073330;
double r6073332 = r6073316 + r6073331;
double r6073333 = r6073313 + r6073332;
double r6073334 = r6073293 * r6073333;
double r6073335 = r6073291 * r6073334;
return r6073335;
}



Bits error versus z
Results
Initial program 1.8
Simplified1.2
rmApplied add-log-exp1.4
Applied add-log-exp1.4
Applied add-log-exp1.4
Applied sum-log1.4
Applied sum-log0.8
Simplified0.6
rmApplied add-cube-cbrt0.6
Final simplification0.6
herbie shell --seed 2019124 +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))))))