Average Error: 0.2 → 0.2
Time: 55.0s
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(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \frac{2}{3}, \left|x\right|, \sqrt{{\left(\left|x\right|\right)}^{7}} \cdot \left(\frac{1}{21} \cdot \sqrt{{\left(\left|x\right|\right)}^{7}}\right)\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(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \frac{2}{3}, \left|x\right|, \sqrt{{\left(\left|x\right|\right)}^{7}} \cdot \left(\frac{1}{21} \cdot \sqrt{{\left(\left|x\right|\right)}^{7}}\right)\right)\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|
double f(double x) {
        double r2525575 = 1.0;
        double r2525576 = atan2(1.0, 0.0);
        double r2525577 = sqrt(r2525576);
        double r2525578 = r2525575 / r2525577;
        double r2525579 = 2.0;
        double r2525580 = x;
        double r2525581 = fabs(r2525580);
        double r2525582 = r2525579 * r2525581;
        double r2525583 = 3.0;
        double r2525584 = r2525579 / r2525583;
        double r2525585 = r2525581 * r2525581;
        double r2525586 = r2525585 * r2525581;
        double r2525587 = r2525584 * r2525586;
        double r2525588 = r2525582 + r2525587;
        double r2525589 = 5.0;
        double r2525590 = r2525575 / r2525589;
        double r2525591 = r2525586 * r2525581;
        double r2525592 = r2525591 * r2525581;
        double r2525593 = r2525590 * r2525592;
        double r2525594 = r2525588 + r2525593;
        double r2525595 = 21.0;
        double r2525596 = r2525575 / r2525595;
        double r2525597 = r2525592 * r2525581;
        double r2525598 = r2525597 * r2525581;
        double r2525599 = r2525596 * r2525598;
        double r2525600 = r2525594 + r2525599;
        double r2525601 = r2525578 * r2525600;
        double r2525602 = fabs(r2525601);
        return r2525602;
}

double f(double x) {
        double r2525603 = 0.2;
        double r2525604 = x;
        double r2525605 = fabs(r2525604);
        double r2525606 = 5.0;
        double r2525607 = pow(r2525605, r2525606);
        double r2525608 = 2.0;
        double r2525609 = r2525605 * r2525605;
        double r2525610 = 0.6666666666666666;
        double r2525611 = r2525609 * r2525610;
        double r2525612 = 7.0;
        double r2525613 = pow(r2525605, r2525612);
        double r2525614 = sqrt(r2525613);
        double r2525615 = 0.047619047619047616;
        double r2525616 = r2525615 * r2525614;
        double r2525617 = r2525614 * r2525616;
        double r2525618 = fma(r2525611, r2525605, r2525617);
        double r2525619 = fma(r2525608, r2525605, r2525618);
        double r2525620 = fma(r2525603, r2525607, r2525619);
        double r2525621 = 1.0;
        double r2525622 = atan2(1.0, 0.0);
        double r2525623 = r2525621 / r2525622;
        double r2525624 = sqrt(r2525623);
        double r2525625 = r2525620 * r2525624;
        double r2525626 = fabs(r2525625);
        return r2525626;
}

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. Taylor expanded around -inf 0.2

    \[\leadsto \left|\color{blue}{\sqrt{\frac{1}{\pi}} \cdot \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{1}{21} \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)}\right|\]
  3. Simplified0.2

    \[\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(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \frac{2}{3}, \left|x\right|, \frac{1}{21} \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)}\right|\]
  4. Using strategy rm
  5. Applied add-sqr-sqrt0.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(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \frac{2}{3}, \left|x\right|, \frac{1}{21} \cdot \color{blue}{\left(\sqrt{{\left(\left|x\right|\right)}^{7}} \cdot \sqrt{{\left(\left|x\right|\right)}^{7}}\right)}\right)\right)\right)\right|\]
  6. Applied associate-*r*0.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(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \frac{2}{3}, \left|x\right|, \color{blue}{\left(\frac{1}{21} \cdot \sqrt{{\left(\left|x\right|\right)}^{7}}\right) \cdot \sqrt{{\left(\left|x\right|\right)}^{7}}}\right)\right)\right)\right|\]
  7. 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(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \frac{2}{3}, \left|x\right|, \sqrt{{\left(\left|x\right|\right)}^{7}} \cdot \left(\frac{1}{21} \cdot \sqrt{{\left(\left|x\right|\right)}^{7}}\right)\right)\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|\]

Reproduce

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