Average Error: 0.2 → 0.2
Time: 14.2s
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(\sqrt[3]{1} \cdot \sqrt[3]{1}\right) \cdot \left(\frac{\sqrt[3]{1}}{\sqrt{\pi}} \cdot \mathsf{fma}\left({\left(\left|x\right|\right)}^{7}, \frac{1}{21}, \mathsf{fma}\left(\left|x\right|, \mathsf{fma}\left({\left(\left|x\right|\right)}^{4}, \frac{1}{5}, 2\right), {\left(\left|x\right|\right)}^{3} \cdot \frac{2}{3}\right)\right)\right)\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(\sqrt[3]{1} \cdot \sqrt[3]{1}\right) \cdot \left(\frac{\sqrt[3]{1}}{\sqrt{\pi}} \cdot \mathsf{fma}\left({\left(\left|x\right|\right)}^{7}, \frac{1}{21}, \mathsf{fma}\left(\left|x\right|, \mathsf{fma}\left({\left(\left|x\right|\right)}^{4}, \frac{1}{5}, 2\right), {\left(\left|x\right|\right)}^{3} \cdot \frac{2}{3}\right)\right)\right)\right|
double f(double x) {
        double r189495 = 1.0;
        double r189496 = atan2(1.0, 0.0);
        double r189497 = sqrt(r189496);
        double r189498 = r189495 / r189497;
        double r189499 = 2.0;
        double r189500 = x;
        double r189501 = fabs(r189500);
        double r189502 = r189499 * r189501;
        double r189503 = 3.0;
        double r189504 = r189499 / r189503;
        double r189505 = r189501 * r189501;
        double r189506 = r189505 * r189501;
        double r189507 = r189504 * r189506;
        double r189508 = r189502 + r189507;
        double r189509 = 5.0;
        double r189510 = r189495 / r189509;
        double r189511 = r189506 * r189501;
        double r189512 = r189511 * r189501;
        double r189513 = r189510 * r189512;
        double r189514 = r189508 + r189513;
        double r189515 = 21.0;
        double r189516 = r189495 / r189515;
        double r189517 = r189512 * r189501;
        double r189518 = r189517 * r189501;
        double r189519 = r189516 * r189518;
        double r189520 = r189514 + r189519;
        double r189521 = r189498 * r189520;
        double r189522 = fabs(r189521);
        return r189522;
}

double f(double x) {
        double r189523 = 1.0;
        double r189524 = cbrt(r189523);
        double r189525 = r189524 * r189524;
        double r189526 = atan2(1.0, 0.0);
        double r189527 = sqrt(r189526);
        double r189528 = r189524 / r189527;
        double r189529 = x;
        double r189530 = fabs(r189529);
        double r189531 = 7.0;
        double r189532 = pow(r189530, r189531);
        double r189533 = 21.0;
        double r189534 = r189523 / r189533;
        double r189535 = 4.0;
        double r189536 = pow(r189530, r189535);
        double r189537 = 5.0;
        double r189538 = r189523 / r189537;
        double r189539 = 2.0;
        double r189540 = fma(r189536, r189538, r189539);
        double r189541 = 3.0;
        double r189542 = pow(r189530, r189541);
        double r189543 = 3.0;
        double r189544 = r189539 / r189543;
        double r189545 = r189542 * r189544;
        double r189546 = fma(r189530, r189540, r189545);
        double r189547 = fma(r189532, r189534, r189546);
        double r189548 = r189528 * r189547;
        double r189549 = r189525 * r189548;
        double r189550 = fabs(r189549);
        return r189550;
}

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. Simplified0.2

    \[\leadsto \color{blue}{\left|\frac{1}{\sqrt{\pi}} \cdot \mathsf{fma}\left({\left(\left|x\right|\right)}^{7}, \frac{1}{21}, \mathsf{fma}\left(\left|x\right|, \mathsf{fma}\left({\left(\left|x\right|\right)}^{4}, \frac{1}{5}, 2\right), {\left(\left|x\right|\right)}^{3} \cdot \frac{2}{3}\right)\right)\right|}\]
  3. Using strategy rm
  4. Applied *-un-lft-identity0.2

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

    \[\leadsto \left|\frac{\color{blue}{\left(\sqrt[3]{1} \cdot \sqrt[3]{1}\right) \cdot \sqrt[3]{1}}}{1 \cdot \sqrt{\pi}} \cdot \mathsf{fma}\left({\left(\left|x\right|\right)}^{7}, \frac{1}{21}, \mathsf{fma}\left(\left|x\right|, \mathsf{fma}\left({\left(\left|x\right|\right)}^{4}, \frac{1}{5}, 2\right), {\left(\left|x\right|\right)}^{3} \cdot \frac{2}{3}\right)\right)\right|\]
  6. Applied times-frac0.2

    \[\leadsto \left|\color{blue}{\left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{1} \cdot \frac{\sqrt[3]{1}}{\sqrt{\pi}}\right)} \cdot \mathsf{fma}\left({\left(\left|x\right|\right)}^{7}, \frac{1}{21}, \mathsf{fma}\left(\left|x\right|, \mathsf{fma}\left({\left(\left|x\right|\right)}^{4}, \frac{1}{5}, 2\right), {\left(\left|x\right|\right)}^{3} \cdot \frac{2}{3}\right)\right)\right|\]
  7. Applied associate-*l*0.2

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

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

Reproduce

herbie shell --seed 2020043 +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)))))))