Average Error: 0.2 → 0.2
Time: 47.9s
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|\mathsf{fma}\left(\frac{1}{5}, {\left(\left|x\right|\right)}^{5}, \mathsf{fma}\left(2, \left|x\right|, \mathsf{fma}\left(\frac{2}{3}, \left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|, \frac{1}{\frac{21}{{\left(\left|x\right|\right)}^{7}}}\right)\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|\mathsf{fma}\left(\frac{1}{5}, {\left(\left|x\right|\right)}^{5}, \mathsf{fma}\left(2, \left|x\right|, \mathsf{fma}\left(\frac{2}{3}, \left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|, \frac{1}{\frac{21}{{\left(\left|x\right|\right)}^{7}}}\right)\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|
double f(double x) {
        double r6189564 = 1.0;
        double r6189565 = atan2(1.0, 0.0);
        double r6189566 = sqrt(r6189565);
        double r6189567 = r6189564 / r6189566;
        double r6189568 = 2.0;
        double r6189569 = x;
        double r6189570 = fabs(r6189569);
        double r6189571 = r6189568 * r6189570;
        double r6189572 = 3.0;
        double r6189573 = r6189568 / r6189572;
        double r6189574 = r6189570 * r6189570;
        double r6189575 = r6189574 * r6189570;
        double r6189576 = r6189573 * r6189575;
        double r6189577 = r6189571 + r6189576;
        double r6189578 = 5.0;
        double r6189579 = r6189564 / r6189578;
        double r6189580 = r6189575 * r6189570;
        double r6189581 = r6189580 * r6189570;
        double r6189582 = r6189579 * r6189581;
        double r6189583 = r6189577 + r6189582;
        double r6189584 = 21.0;
        double r6189585 = r6189564 / r6189584;
        double r6189586 = r6189581 * r6189570;
        double r6189587 = r6189586 * r6189570;
        double r6189588 = r6189585 * r6189587;
        double r6189589 = r6189583 + r6189588;
        double r6189590 = r6189567 * r6189589;
        double r6189591 = fabs(r6189590);
        return r6189591;
}

double f(double x) {
        double r6189592 = 0.2;
        double r6189593 = x;
        double r6189594 = fabs(r6189593);
        double r6189595 = 5.0;
        double r6189596 = pow(r6189594, r6189595);
        double r6189597 = 2.0;
        double r6189598 = 0.6666666666666666;
        double r6189599 = r6189594 * r6189594;
        double r6189600 = r6189599 * r6189594;
        double r6189601 = 1.0;
        double r6189602 = 21.0;
        double r6189603 = 7.0;
        double r6189604 = pow(r6189594, r6189603);
        double r6189605 = r6189602 / r6189604;
        double r6189606 = r6189601 / r6189605;
        double r6189607 = fma(r6189598, r6189600, r6189606);
        double r6189608 = fma(r6189597, r6189594, r6189607);
        double r6189609 = fma(r6189592, r6189596, r6189608);
        double r6189610 = atan2(1.0, 0.0);
        double r6189611 = r6189601 / r6189610;
        double r6189612 = sqrt(r6189611);
        double r6189613 = r6189609 * r6189612;
        double r6189614 = fabs(r6189613);
        return r6189614;
}

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 *-un-lft-identity0.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}{1 \cdot 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{1}{\sqrt{21}} \cdot \frac{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{1}{\sqrt{21}} \cdot \left(\frac{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. Taylor expanded around 0 0.1

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

    \[\leadsto \left|\color{blue}{\sqrt{\frac{1}{\pi}} \cdot \mathsf{fma}\left(\frac{1}{5}, {\left(\left|x\right|\right)}^{5}, \mathsf{fma}\left(2, \left|x\right|, \mathsf{fma}\left(\frac{2}{3}, \left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|, \frac{{\left(\left|x\right|\right)}^{7}}{21}\right)\right)\right)}\right|\]
  9. Using strategy rm
  10. Applied clear-num0.2

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

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

Reproduce

herbie shell --seed 2019164 +o rules:numerics
(FPCore (x)
  :name "Jmat.Real.erfi, branch x less than or equal to 0.5"
  (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)))))))