Average Error: 59.9 → 0.8
Time: 3.8m
Precision: 64
\[\left(\left(\sqrt{\pi \cdot 2} \cdot {\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}^{\left(\left(z - 1\right) + 0.5\right)}\right) \cdot e^{-\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}\right) \cdot \left(\left(\left(\left(\left(\left(\left(\left(0.9999999999998099 + \frac{676.5203681218851}{\left(z - 1\right) + 1}\right) + \frac{-1259.1392167224028}{\left(z - 1\right) + 2}\right) + \frac{771.3234287776531}{\left(z - 1\right) + 3}\right) + \frac{-176.6150291621406}{\left(z - 1\right) + 4}\right) + \frac{12.507343278686905}{\left(z - 1\right) + 5}\right) + \frac{-0.13857109526572012}{\left(z - 1\right) + 6}\right) + \frac{9.984369578019572 \cdot 10^{-06}}{\left(z - 1\right) + 7}\right) + \frac{1.5056327351493116 \cdot 10^{-07}}{\left(z - 1\right) + 8}\right)\]
\[\mathsf{fma}\left(\frac{\left(\sqrt[3]{\sqrt{\pi \cdot 2} \cdot {\left(0.5 + \left(\left(z - 1\right) + 7\right)\right)}^{\left(\left(z - 1\right) + 0.5\right)}} \cdot \sqrt[3]{\sqrt{\pi \cdot 2} \cdot {\left(0.5 + \left(\left(z - 1\right) + 7\right)\right)}^{\left(\left(z - 1\right) + 0.5\right)}}\right) \cdot \sqrt[3]{\sqrt{\pi \cdot 2} \cdot {\left(0.5 + \left(\left(z - 1\right) + 7\right)\right)}^{\left(\left(z - 1\right) + 0.5\right)}}}{e^{0.5 + \left(\left(z - 1\right) + 7\right)}}, \left(\frac{-1259.1392167224028}{z + 1} + \left(\left(0.9999999999998099 + \frac{676.5203681218851}{z}\right) + \frac{-176.6150291621406}{z - -3}\right)\right) + \left(\frac{771.3234287776531}{z + 2} + \left(\frac{-0.13857109526572012}{\left(\left(z - 1\right) + 7\right) - 1} + \frac{12.507343278686905}{z + 4}\right)\right), \frac{\sqrt{\pi \cdot 2} \cdot {\left(0.5 + \left(\left(z - 1\right) + 7\right)\right)}^{\left(\left(z - 1\right) + 0.5\right)}}{e^{0.5 + \left(\left(z - 1\right) + 7\right)}} \cdot \left(\frac{1.5056327351493116 \cdot 10^{-07}}{z + 7} + \frac{9.984369578019572 \cdot 10^{-06}}{\left(z - 1\right) + 7}\right)\right)\]
\left(\left(\sqrt{\pi \cdot 2} \cdot {\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}^{\left(\left(z - 1\right) + 0.5\right)}\right) \cdot e^{-\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}\right) \cdot \left(\left(\left(\left(\left(\left(\left(\left(0.9999999999998099 + \frac{676.5203681218851}{\left(z - 1\right) + 1}\right) + \frac{-1259.1392167224028}{\left(z - 1\right) + 2}\right) + \frac{771.3234287776531}{\left(z - 1\right) + 3}\right) + \frac{-176.6150291621406}{\left(z - 1\right) + 4}\right) + \frac{12.507343278686905}{\left(z - 1\right) + 5}\right) + \frac{-0.13857109526572012}{\left(z - 1\right) + 6}\right) + \frac{9.984369578019572 \cdot 10^{-06}}{\left(z - 1\right) + 7}\right) + \frac{1.5056327351493116 \cdot 10^{-07}}{\left(z - 1\right) + 8}\right)
\mathsf{fma}\left(\frac{\left(\sqrt[3]{\sqrt{\pi \cdot 2} \cdot {\left(0.5 + \left(\left(z - 1\right) + 7\right)\right)}^{\left(\left(z - 1\right) + 0.5\right)}} \cdot \sqrt[3]{\sqrt{\pi \cdot 2} \cdot {\left(0.5 + \left(\left(z - 1\right) + 7\right)\right)}^{\left(\left(z - 1\right) + 0.5\right)}}\right) \cdot \sqrt[3]{\sqrt{\pi \cdot 2} \cdot {\left(0.5 + \left(\left(z - 1\right) + 7\right)\right)}^{\left(\left(z - 1\right) + 0.5\right)}}}{e^{0.5 + \left(\left(z - 1\right) + 7\right)}}, \left(\frac{-1259.1392167224028}{z + 1} + \left(\left(0.9999999999998099 + \frac{676.5203681218851}{z}\right) + \frac{-176.6150291621406}{z - -3}\right)\right) + \left(\frac{771.3234287776531}{z + 2} + \left(\frac{-0.13857109526572012}{\left(\left(z - 1\right) + 7\right) - 1} + \frac{12.507343278686905}{z + 4}\right)\right), \frac{\sqrt{\pi \cdot 2} \cdot {\left(0.5 + \left(\left(z - 1\right) + 7\right)\right)}^{\left(\left(z - 1\right) + 0.5\right)}}{e^{0.5 + \left(\left(z - 1\right) + 7\right)}} \cdot \left(\frac{1.5056327351493116 \cdot 10^{-07}}{z + 7} + \frac{9.984369578019572 \cdot 10^{-06}}{\left(z - 1\right) + 7}\right)\right)
double f(double z) {
        double r7604269 = atan2(1.0, 0.0);
        double r7604270 = 2.0;
        double r7604271 = r7604269 * r7604270;
        double r7604272 = sqrt(r7604271);
        double r7604273 = z;
        double r7604274 = 1.0;
        double r7604275 = r7604273 - r7604274;
        double r7604276 = 7.0;
        double r7604277 = r7604275 + r7604276;
        double r7604278 = 0.5;
        double r7604279 = r7604277 + r7604278;
        double r7604280 = r7604275 + r7604278;
        double r7604281 = pow(r7604279, r7604280);
        double r7604282 = r7604272 * r7604281;
        double r7604283 = -r7604279;
        double r7604284 = exp(r7604283);
        double r7604285 = r7604282 * r7604284;
        double r7604286 = 0.9999999999998099;
        double r7604287 = 676.5203681218851;
        double r7604288 = r7604275 + r7604274;
        double r7604289 = r7604287 / r7604288;
        double r7604290 = r7604286 + r7604289;
        double r7604291 = -1259.1392167224028;
        double r7604292 = r7604275 + r7604270;
        double r7604293 = r7604291 / r7604292;
        double r7604294 = r7604290 + r7604293;
        double r7604295 = 771.3234287776531;
        double r7604296 = 3.0;
        double r7604297 = r7604275 + r7604296;
        double r7604298 = r7604295 / r7604297;
        double r7604299 = r7604294 + r7604298;
        double r7604300 = -176.6150291621406;
        double r7604301 = 4.0;
        double r7604302 = r7604275 + r7604301;
        double r7604303 = r7604300 / r7604302;
        double r7604304 = r7604299 + r7604303;
        double r7604305 = 12.507343278686905;
        double r7604306 = 5.0;
        double r7604307 = r7604275 + r7604306;
        double r7604308 = r7604305 / r7604307;
        double r7604309 = r7604304 + r7604308;
        double r7604310 = -0.13857109526572012;
        double r7604311 = 6.0;
        double r7604312 = r7604275 + r7604311;
        double r7604313 = r7604310 / r7604312;
        double r7604314 = r7604309 + r7604313;
        double r7604315 = 9.984369578019572e-06;
        double r7604316 = r7604315 / r7604277;
        double r7604317 = r7604314 + r7604316;
        double r7604318 = 1.5056327351493116e-07;
        double r7604319 = 8.0;
        double r7604320 = r7604275 + r7604319;
        double r7604321 = r7604318 / r7604320;
        double r7604322 = r7604317 + r7604321;
        double r7604323 = r7604285 * r7604322;
        return r7604323;
}

double f(double z) {
        double r7604324 = atan2(1.0, 0.0);
        double r7604325 = 2.0;
        double r7604326 = r7604324 * r7604325;
        double r7604327 = sqrt(r7604326);
        double r7604328 = 0.5;
        double r7604329 = z;
        double r7604330 = 1.0;
        double r7604331 = r7604329 - r7604330;
        double r7604332 = 7.0;
        double r7604333 = r7604331 + r7604332;
        double r7604334 = r7604328 + r7604333;
        double r7604335 = r7604331 + r7604328;
        double r7604336 = pow(r7604334, r7604335);
        double r7604337 = r7604327 * r7604336;
        double r7604338 = cbrt(r7604337);
        double r7604339 = r7604338 * r7604338;
        double r7604340 = r7604339 * r7604338;
        double r7604341 = exp(r7604334);
        double r7604342 = r7604340 / r7604341;
        double r7604343 = -1259.1392167224028;
        double r7604344 = r7604329 + r7604330;
        double r7604345 = r7604343 / r7604344;
        double r7604346 = 0.9999999999998099;
        double r7604347 = 676.5203681218851;
        double r7604348 = r7604347 / r7604329;
        double r7604349 = r7604346 + r7604348;
        double r7604350 = -176.6150291621406;
        double r7604351 = -3.0;
        double r7604352 = r7604329 - r7604351;
        double r7604353 = r7604350 / r7604352;
        double r7604354 = r7604349 + r7604353;
        double r7604355 = r7604345 + r7604354;
        double r7604356 = 771.3234287776531;
        double r7604357 = r7604329 + r7604325;
        double r7604358 = r7604356 / r7604357;
        double r7604359 = -0.13857109526572012;
        double r7604360 = r7604333 - r7604330;
        double r7604361 = r7604359 / r7604360;
        double r7604362 = 12.507343278686905;
        double r7604363 = 4.0;
        double r7604364 = r7604329 + r7604363;
        double r7604365 = r7604362 / r7604364;
        double r7604366 = r7604361 + r7604365;
        double r7604367 = r7604358 + r7604366;
        double r7604368 = r7604355 + r7604367;
        double r7604369 = r7604337 / r7604341;
        double r7604370 = 1.5056327351493116e-07;
        double r7604371 = r7604329 + r7604332;
        double r7604372 = r7604370 / r7604371;
        double r7604373 = 9.984369578019572e-06;
        double r7604374 = r7604373 / r7604333;
        double r7604375 = r7604372 + r7604374;
        double r7604376 = r7604369 * r7604375;
        double r7604377 = fma(r7604342, r7604368, r7604376);
        return r7604377;
}

Error

Bits error versus z

Derivation

  1. Initial program 59.9

    \[\left(\left(\sqrt{\pi \cdot 2} \cdot {\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}^{\left(\left(z - 1\right) + 0.5\right)}\right) \cdot e^{-\left(\left(\left(z - 1\right) + 7\right) + 0.5\right)}\right) \cdot \left(\left(\left(\left(\left(\left(\left(\left(0.9999999999998099 + \frac{676.5203681218851}{\left(z - 1\right) + 1}\right) + \frac{-1259.1392167224028}{\left(z - 1\right) + 2}\right) + \frac{771.3234287776531}{\left(z - 1\right) + 3}\right) + \frac{-176.6150291621406}{\left(z - 1\right) + 4}\right) + \frac{12.507343278686905}{\left(z - 1\right) + 5}\right) + \frac{-0.13857109526572012}{\left(z - 1\right) + 6}\right) + \frac{9.984369578019572 \cdot 10^{-06}}{\left(z - 1\right) + 7}\right) + \frac{1.5056327351493116 \cdot 10^{-07}}{\left(z - 1\right) + 8}\right)\]
  2. Simplified1.1

    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{{\left(\left(7 + \left(z - 1\right)\right) + 0.5\right)}^{\left(\left(z - 1\right) + 0.5\right)} \cdot \sqrt{\pi \cdot 2}}{e^{\left(7 + \left(z - 1\right)\right) + 0.5}}, \left(\left(\frac{-0.13857109526572012}{\left(7 + \left(z - 1\right)\right) - 1} + \frac{12.507343278686905}{4 + z}\right) + \frac{771.3234287776531}{z + 2}\right) + \left(\frac{-1259.1392167224028}{z + 1} + \left(\left(0.9999999999998099 + \frac{676.5203681218851}{z}\right) + \frac{-176.6150291621406}{z - -3}\right)\right), \left(\frac{9.984369578019572 \cdot 10^{-06}}{7 + \left(z - 1\right)} + \frac{1.5056327351493116 \cdot 10^{-07}}{7 + z}\right) \cdot \frac{{\left(\left(7 + \left(z - 1\right)\right) + 0.5\right)}^{\left(\left(z - 1\right) + 0.5\right)} \cdot \sqrt{\pi \cdot 2}}{e^{\left(7 + \left(z - 1\right)\right) + 0.5}}\right)}\]
  3. Using strategy rm
  4. Applied add-cube-cbrt0.8

    \[\leadsto \mathsf{fma}\left(\frac{\color{blue}{\left(\sqrt[3]{{\left(\left(7 + \left(z - 1\right)\right) + 0.5\right)}^{\left(\left(z - 1\right) + 0.5\right)} \cdot \sqrt{\pi \cdot 2}} \cdot \sqrt[3]{{\left(\left(7 + \left(z - 1\right)\right) + 0.5\right)}^{\left(\left(z - 1\right) + 0.5\right)} \cdot \sqrt{\pi \cdot 2}}\right) \cdot \sqrt[3]{{\left(\left(7 + \left(z - 1\right)\right) + 0.5\right)}^{\left(\left(z - 1\right) + 0.5\right)} \cdot \sqrt{\pi \cdot 2}}}}{e^{\left(7 + \left(z - 1\right)\right) + 0.5}}, \left(\left(\frac{-0.13857109526572012}{\left(7 + \left(z - 1\right)\right) - 1} + \frac{12.507343278686905}{4 + z}\right) + \frac{771.3234287776531}{z + 2}\right) + \left(\frac{-1259.1392167224028}{z + 1} + \left(\left(0.9999999999998099 + \frac{676.5203681218851}{z}\right) + \frac{-176.6150291621406}{z - -3}\right)\right), \left(\frac{9.984369578019572 \cdot 10^{-06}}{7 + \left(z - 1\right)} + \frac{1.5056327351493116 \cdot 10^{-07}}{7 + z}\right) \cdot \frac{{\left(\left(7 + \left(z - 1\right)\right) + 0.5\right)}^{\left(\left(z - 1\right) + 0.5\right)} \cdot \sqrt{\pi \cdot 2}}{e^{\left(7 + \left(z - 1\right)\right) + 0.5}}\right)\]
  5. Final simplification0.8

    \[\leadsto \mathsf{fma}\left(\frac{\left(\sqrt[3]{\sqrt{\pi \cdot 2} \cdot {\left(0.5 + \left(\left(z - 1\right) + 7\right)\right)}^{\left(\left(z - 1\right) + 0.5\right)}} \cdot \sqrt[3]{\sqrt{\pi \cdot 2} \cdot {\left(0.5 + \left(\left(z - 1\right) + 7\right)\right)}^{\left(\left(z - 1\right) + 0.5\right)}}\right) \cdot \sqrt[3]{\sqrt{\pi \cdot 2} \cdot {\left(0.5 + \left(\left(z - 1\right) + 7\right)\right)}^{\left(\left(z - 1\right) + 0.5\right)}}}{e^{0.5 + \left(\left(z - 1\right) + 7\right)}}, \left(\frac{-1259.1392167224028}{z + 1} + \left(\left(0.9999999999998099 + \frac{676.5203681218851}{z}\right) + \frac{-176.6150291621406}{z - -3}\right)\right) + \left(\frac{771.3234287776531}{z + 2} + \left(\frac{-0.13857109526572012}{\left(\left(z - 1\right) + 7\right) - 1} + \frac{12.507343278686905}{z + 4}\right)\right), \frac{\sqrt{\pi \cdot 2} \cdot {\left(0.5 + \left(\left(z - 1\right) + 7\right)\right)}^{\left(\left(z - 1\right) + 0.5\right)}}{e^{0.5 + \left(\left(z - 1\right) + 7\right)}} \cdot \left(\frac{1.5056327351493116 \cdot 10^{-07}}{z + 7} + \frac{9.984369578019572 \cdot 10^{-06}}{\left(z - 1\right) + 7}\right)\right)\]

Reproduce

herbie shell --seed 2019138 +o rules:numerics
(FPCore (z)
  :name "Jmat.Real.gamma, branch z greater than 0.5"
  (* (* (* (sqrt (* PI 2)) (pow (+ (+ (- z 1) 7) 0.5) (+ (- z 1) 0.5))) (exp (- (+ (+ (- z 1) 7) 0.5)))) (+ (+ (+ (+ (+ (+ (+ (+ 0.9999999999998099 (/ 676.5203681218851 (+ (- z 1) 1))) (/ -1259.1392167224028 (+ (- z 1) 2))) (/ 771.3234287776531 (+ (- z 1) 3))) (/ -176.6150291621406 (+ (- z 1) 4))) (/ 12.507343278686905 (+ (- z 1) 5))) (/ -0.13857109526572012 (+ (- z 1) 6))) (/ 9.984369578019572e-06 (+ (- z 1) 7))) (/ 1.5056327351493116e-07 (+ (- z 1) 8)))))