Average Error: 0.2 → 0.2
Time: 17.8s
Precision: 64
\[\left|\frac{1}{\sqrt{\pi}} \cdot \left(\left(\left(2 \cdot \left|x\right| + \frac{2}{3} \cdot \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{5} \cdot \left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{21} \cdot \left(\left(\left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right|\]
\[\left|\left(1 \cdot \mathsf{fma}\left({\left(\left|x\right|\right)}^{3}, 0.6666666666666666296592325124947819858789, \mathsf{fma}\left(0.2000000000000000111022302462515654042363, {\left(\left|x\right|\right)}^{5}, 2 \cdot \left|x\right|\right) + \frac{1 \cdot {\left(\left|x\right|\right)}^{7}}{21}\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|\]
\left|\frac{1}{\sqrt{\pi}} \cdot \left(\left(\left(2 \cdot \left|x\right| + \frac{2}{3} \cdot \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{5} \cdot \left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{21} \cdot \left(\left(\left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right|
\left|\left(1 \cdot \mathsf{fma}\left({\left(\left|x\right|\right)}^{3}, 0.6666666666666666296592325124947819858789, \mathsf{fma}\left(0.2000000000000000111022302462515654042363, {\left(\left|x\right|\right)}^{5}, 2 \cdot \left|x\right|\right) + \frac{1 \cdot {\left(\left|x\right|\right)}^{7}}{21}\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|
double f(double x) {
        double r201411 = 1.0;
        double r201412 = atan2(1.0, 0.0);
        double r201413 = sqrt(r201412);
        double r201414 = r201411 / r201413;
        double r201415 = 2.0;
        double r201416 = x;
        double r201417 = fabs(r201416);
        double r201418 = r201415 * r201417;
        double r201419 = 3.0;
        double r201420 = r201415 / r201419;
        double r201421 = r201417 * r201417;
        double r201422 = r201421 * r201417;
        double r201423 = r201420 * r201422;
        double r201424 = r201418 + r201423;
        double r201425 = 5.0;
        double r201426 = r201411 / r201425;
        double r201427 = r201422 * r201417;
        double r201428 = r201427 * r201417;
        double r201429 = r201426 * r201428;
        double r201430 = r201424 + r201429;
        double r201431 = 21.0;
        double r201432 = r201411 / r201431;
        double r201433 = r201428 * r201417;
        double r201434 = r201433 * r201417;
        double r201435 = r201432 * r201434;
        double r201436 = r201430 + r201435;
        double r201437 = r201414 * r201436;
        double r201438 = fabs(r201437);
        return r201438;
}

double f(double x) {
        double r201439 = 1.0;
        double r201440 = x;
        double r201441 = fabs(r201440);
        double r201442 = 3.0;
        double r201443 = pow(r201441, r201442);
        double r201444 = 0.6666666666666666;
        double r201445 = 0.2;
        double r201446 = 5.0;
        double r201447 = pow(r201441, r201446);
        double r201448 = 2.0;
        double r201449 = r201448 * r201441;
        double r201450 = fma(r201445, r201447, r201449);
        double r201451 = 7.0;
        double r201452 = pow(r201441, r201451);
        double r201453 = r201439 * r201452;
        double r201454 = 21.0;
        double r201455 = r201453 / r201454;
        double r201456 = r201450 + r201455;
        double r201457 = fma(r201443, r201444, r201456);
        double r201458 = r201439 * r201457;
        double r201459 = 1.0;
        double r201460 = atan2(1.0, 0.0);
        double r201461 = r201459 / r201460;
        double r201462 = sqrt(r201461);
        double r201463 = r201458 * r201462;
        double r201464 = fabs(r201463);
        return r201464;
}

Error

Bits error versus x

Derivation

  1. Initial program 0.2

    \[\left|\frac{1}{\sqrt{\pi}} \cdot \left(\left(\left(2 \cdot \left|x\right| + \frac{2}{3} \cdot \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{5} \cdot \left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{21} \cdot \left(\left(\left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right|\]
  2. Using strategy rm
  3. Applied add-sqr-sqrt0.2

    \[\leadsto \left|\frac{1}{\sqrt{\pi}} \cdot \left(\left(\left(2 \cdot \left|x\right| + \frac{2}{3} \cdot \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{5} \cdot \left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{\color{blue}{\sqrt{21} \cdot \sqrt{21}}} \cdot \left(\left(\left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right|\]
  4. Applied add-cube-cbrt0.2

    \[\leadsto \left|\frac{1}{\sqrt{\pi}} \cdot \left(\left(\left(2 \cdot \left|x\right| + \frac{2}{3} \cdot \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{5} \cdot \left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{\color{blue}{\left(\sqrt[3]{1} \cdot \sqrt[3]{1}\right) \cdot \sqrt[3]{1}}}{\sqrt{21} \cdot \sqrt{21}} \cdot \left(\left(\left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right|\]
  5. Applied times-frac0.2

    \[\leadsto \left|\frac{1}{\sqrt{\pi}} \cdot \left(\left(\left(2 \cdot \left|x\right| + \frac{2}{3} \cdot \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{5} \cdot \left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \color{blue}{\left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt{21}} \cdot \frac{\sqrt[3]{1}}{\sqrt{21}}\right)} \cdot \left(\left(\left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right|\]
  6. Applied associate-*l*0.2

    \[\leadsto \left|\frac{1}{\sqrt{\pi}} \cdot \left(\left(\left(2 \cdot \left|x\right| + \frac{2}{3} \cdot \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{5} \cdot \left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \color{blue}{\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt{21}} \cdot \left(\frac{\sqrt[3]{1}}{\sqrt{21}} \cdot \left(\left(\left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)}\right)\right|\]
  7. Simplified0.2

    \[\leadsto \left|\frac{1}{\sqrt{\pi}} \cdot \left(\left(\left(2 \cdot \left|x\right| + \frac{2}{3} \cdot \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{5} \cdot \left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt{21}} \cdot \color{blue}{\left(\left(\frac{\sqrt[3]{1}}{\sqrt{21}} \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|\right)}\right)\right|\]
  8. Taylor expanded around 0 0.2

    \[\leadsto \left|\color{blue}{1 \cdot \left(\sqrt{\frac{1}{\pi}} \cdot \left(0.6666666666666666296592325124947819858789 \cdot {\left(\left|x\right|\right)}^{3} + \left(1 \cdot \frac{{\left(\left|x\right|\right)}^{7}}{{\left(\sqrt{21}\right)}^{2}} + \left(0.2000000000000000111022302462515654042363 \cdot {\left(\left|x\right|\right)}^{5} + 2 \cdot \left|x\right|\right)\right)\right)\right)}\right|\]
  9. Simplified0.2

    \[\leadsto \left|\color{blue}{\left(1 \cdot \mathsf{fma}\left({\left(\left|x\right|\right)}^{3}, 0.6666666666666666296592325124947819858789, \mathsf{fma}\left(0.2000000000000000111022302462515654042363, {\left(\left|x\right|\right)}^{5}, 2 \cdot \left|x\right|\right) + \frac{1 \cdot {\left(\left|x\right|\right)}^{7}}{21}\right)\right) \cdot \sqrt{\frac{1}{\pi}}}\right|\]
  10. Final simplification0.2

    \[\leadsto \left|\left(1 \cdot \mathsf{fma}\left({\left(\left|x\right|\right)}^{3}, 0.6666666666666666296592325124947819858789, \mathsf{fma}\left(0.2000000000000000111022302462515654042363, {\left(\left|x\right|\right)}^{5}, 2 \cdot \left|x\right|\right) + \frac{1 \cdot {\left(\left|x\right|\right)}^{7}}{21}\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|\]

Reproduce

herbie shell --seed 2019353 +o rules:numerics
(FPCore (x)
  :name "Jmat.Real.erfi, branch x less than or equal to 0.5"
  :precision binary64
  (fabs (* (/ 1 (sqrt PI)) (+ (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))))