Average Error: 0.2 → 0.1
Time: 17.5s
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|\frac{1}{\sqrt{\pi}} \cdot \mathsf{fma}\left(\left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{3}\right) \cdot \left|x\right|, \left|x\right|, \mathsf{fma}\left(\left|x\right|, 2, {\left(\left|x\right|\right)}^{3} \cdot \frac{2}{3}\right)\right) + \left(\left(\sqrt{\frac{1}{\sqrt{\pi}}} \cdot \left(\sqrt{\frac{1}{\sqrt{\pi}}} \cdot \frac{1}{21}\right)\right) \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\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|\frac{1}{\sqrt{\pi}} \cdot \mathsf{fma}\left(\left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{3}\right) \cdot \left|x\right|, \left|x\right|, \mathsf{fma}\left(\left|x\right|, 2, {\left(\left|x\right|\right)}^{3} \cdot \frac{2}{3}\right)\right) + \left(\left(\sqrt{\frac{1}{\sqrt{\pi}}} \cdot \left(\sqrt{\frac{1}{\sqrt{\pi}}} \cdot \frac{1}{21}\right)\right) \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|\right|
double f(double x) {
        double r542 = 1.0;
        double r543 = atan2(1.0, 0.0);
        double r544 = sqrt(r543);
        double r545 = r542 / r544;
        double r546 = 2.0;
        double r547 = x;
        double r548 = fabs(r547);
        double r549 = r546 * r548;
        double r550 = 3.0;
        double r551 = r546 / r550;
        double r552 = r548 * r548;
        double r553 = r552 * r548;
        double r554 = r551 * r553;
        double r555 = r549 + r554;
        double r556 = 5.0;
        double r557 = r542 / r556;
        double r558 = r553 * r548;
        double r559 = r558 * r548;
        double r560 = r557 * r559;
        double r561 = r555 + r560;
        double r562 = 21.0;
        double r563 = r542 / r562;
        double r564 = r559 * r548;
        double r565 = r564 * r548;
        double r566 = r563 * r565;
        double r567 = r561 + r566;
        double r568 = r545 * r567;
        double r569 = fabs(r568);
        return r569;
}

double f(double x) {
        double r570 = 1.0;
        double r571 = atan2(1.0, 0.0);
        double r572 = sqrt(r571);
        double r573 = r570 / r572;
        double r574 = 5.0;
        double r575 = r570 / r574;
        double r576 = x;
        double r577 = fabs(r576);
        double r578 = 3.0;
        double r579 = pow(r577, r578);
        double r580 = r575 * r579;
        double r581 = r580 * r577;
        double r582 = 2.0;
        double r583 = 3.0;
        double r584 = r582 / r583;
        double r585 = r579 * r584;
        double r586 = fma(r577, r582, r585);
        double r587 = fma(r581, r577, r586);
        double r588 = r573 * r587;
        double r589 = sqrt(r573);
        double r590 = 21.0;
        double r591 = r570 / r590;
        double r592 = r589 * r591;
        double r593 = r589 * r592;
        double r594 = 6.0;
        double r595 = pow(r577, r594);
        double r596 = r593 * r595;
        double r597 = r596 * r577;
        double r598 = r588 + r597;
        double r599 = fabs(r598);
        return r599;
}

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 distribute-lft-in0.2

    \[\leadsto \left|\color{blue}{\frac{1}{\sqrt{\pi}} \cdot \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}{\sqrt{\pi}} \cdot \left(\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|\]
  4. Simplified0.2

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

    \[\leadsto \left|\frac{1}{\sqrt{\pi}} \cdot \mathsf{fma}\left(\left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{3}\right) \cdot \left|x\right|, \left|x\right|, \mathsf{fma}\left(\left|x\right|, 2, {\left(\left|x\right|\right)}^{3} \cdot \frac{2}{3}\right)\right) + \color{blue}{\left(\left(\frac{1}{\sqrt{\pi}} \cdot \frac{1}{21}\right) \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|}\right|\]
  6. Using strategy rm
  7. Applied add-sqr-sqrt0.2

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

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

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

Reproduce

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