\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{\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(\mathsf{fma}\left(1, -1, {\left(\sqrt[3]{1 - z}\right)}^{3}\right) + 0\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)double f(double z) {
double r148217 = atan2(1.0, 0.0);
double r148218 = z;
double r148219 = r148217 * r148218;
double r148220 = sin(r148219);
double r148221 = r148217 / r148220;
double r148222 = 2.0;
double r148223 = r148217 * r148222;
double r148224 = sqrt(r148223);
double r148225 = 1.0;
double r148226 = r148225 - r148218;
double r148227 = r148226 - r148225;
double r148228 = 7.0;
double r148229 = r148227 + r148228;
double r148230 = 0.5;
double r148231 = r148229 + r148230;
double r148232 = r148227 + r148230;
double r148233 = pow(r148231, r148232);
double r148234 = r148224 * r148233;
double r148235 = -r148231;
double r148236 = exp(r148235);
double r148237 = r148234 * r148236;
double r148238 = 0.9999999999998099;
double r148239 = 676.5203681218851;
double r148240 = r148227 + r148225;
double r148241 = r148239 / r148240;
double r148242 = r148238 + r148241;
double r148243 = -1259.1392167224028;
double r148244 = r148227 + r148222;
double r148245 = r148243 / r148244;
double r148246 = r148242 + r148245;
double r148247 = 771.3234287776531;
double r148248 = 3.0;
double r148249 = r148227 + r148248;
double r148250 = r148247 / r148249;
double r148251 = r148246 + r148250;
double r148252 = -176.6150291621406;
double r148253 = 4.0;
double r148254 = r148227 + r148253;
double r148255 = r148252 / r148254;
double r148256 = r148251 + r148255;
double r148257 = 12.507343278686905;
double r148258 = 5.0;
double r148259 = r148227 + r148258;
double r148260 = r148257 / r148259;
double r148261 = r148256 + r148260;
double r148262 = -0.13857109526572012;
double r148263 = 6.0;
double r148264 = r148227 + r148263;
double r148265 = r148262 / r148264;
double r148266 = r148261 + r148265;
double r148267 = 9.984369578019572e-06;
double r148268 = r148267 / r148229;
double r148269 = r148266 + r148268;
double r148270 = 1.5056327351493116e-07;
double r148271 = 8.0;
double r148272 = r148227 + r148271;
double r148273 = r148270 / r148272;
double r148274 = r148269 + r148273;
double r148275 = r148237 * r148274;
double r148276 = r148221 * r148275;
return r148276;
}
double f(double z) {
double r148277 = atan2(1.0, 0.0);
double r148278 = z;
double r148279 = r148277 * r148278;
double r148280 = sin(r148279);
double r148281 = r148277 / r148280;
double r148282 = 2.0;
double r148283 = r148277 * r148282;
double r148284 = sqrt(r148283);
double r148285 = 1.0;
double r148286 = r148285 - r148278;
double r148287 = r148286 - r148285;
double r148288 = 7.0;
double r148289 = r148287 + r148288;
double r148290 = 0.5;
double r148291 = r148289 + r148290;
double r148292 = r148287 + r148290;
double r148293 = pow(r148291, r148292);
double r148294 = r148284 * r148293;
double r148295 = -r148291;
double r148296 = exp(r148295);
double r148297 = r148294 * r148296;
double r148298 = 0.9999999999998099;
double r148299 = 676.5203681218851;
double r148300 = r148287 + r148285;
double r148301 = r148299 / r148300;
double r148302 = r148298 + r148301;
double r148303 = -1259.1392167224028;
double r148304 = r148287 + r148282;
double r148305 = r148303 / r148304;
double r148306 = r148302 + r148305;
double r148307 = 771.3234287776531;
double r148308 = 3.0;
double r148309 = r148287 + r148308;
double r148310 = r148307 / r148309;
double r148311 = r148306 + r148310;
double r148312 = -176.6150291621406;
double r148313 = 4.0;
double r148314 = r148287 + r148313;
double r148315 = r148312 / r148314;
double r148316 = r148311 + r148315;
double r148317 = 12.507343278686905;
double r148318 = -1.0;
double r148319 = cbrt(r148286);
double r148320 = 3.0;
double r148321 = pow(r148319, r148320);
double r148322 = fma(r148285, r148318, r148321);
double r148323 = 0.0;
double r148324 = r148322 + r148323;
double r148325 = 5.0;
double r148326 = r148324 + r148325;
double r148327 = r148317 / r148326;
double r148328 = r148316 + r148327;
double r148329 = -0.13857109526572012;
double r148330 = 6.0;
double r148331 = r148287 + r148330;
double r148332 = r148329 / r148331;
double r148333 = r148328 + r148332;
double r148334 = 9.984369578019572e-06;
double r148335 = r148334 / r148289;
double r148336 = r148333 + r148335;
double r148337 = 1.5056327351493116e-07;
double r148338 = 8.0;
double r148339 = r148287 + r148338;
double r148340 = r148337 / r148339;
double r148341 = r148336 + r148340;
double r148342 = r148297 * r148341;
double r148343 = r148281 * r148342;
return r148343;
}



Bits error versus z
Initial program 1.8
rmApplied add-cube-cbrt1.8
Applied add-cube-cbrt1.8
Applied prod-diff1.8
Simplified1.8
Simplified1.8
Final simplification1.8
herbie shell --seed 2020062 +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))))))