Average Error: 0.2 → 0.2
Time: 17.3s
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 \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{\left(1 \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|}{21}\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 \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{\left(1 \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|}{21}\right)\right|
double f(double x) {
        double r154686 = 1.0;
        double r154687 = atan2(1.0, 0.0);
        double r154688 = sqrt(r154687);
        double r154689 = r154686 / r154688;
        double r154690 = 2.0;
        double r154691 = x;
        double r154692 = fabs(r154691);
        double r154693 = r154690 * r154692;
        double r154694 = 3.0;
        double r154695 = r154690 / r154694;
        double r154696 = r154692 * r154692;
        double r154697 = r154696 * r154692;
        double r154698 = r154695 * r154697;
        double r154699 = r154693 + r154698;
        double r154700 = 5.0;
        double r154701 = r154686 / r154700;
        double r154702 = r154697 * r154692;
        double r154703 = r154702 * r154692;
        double r154704 = r154701 * r154703;
        double r154705 = r154699 + r154704;
        double r154706 = 21.0;
        double r154707 = r154686 / r154706;
        double r154708 = r154703 * r154692;
        double r154709 = r154708 * r154692;
        double r154710 = r154707 * r154709;
        double r154711 = r154705 + r154710;
        double r154712 = r154689 * r154711;
        double r154713 = fabs(r154712);
        return r154713;
}

double f(double x) {
        double r154714 = 1.0;
        double r154715 = atan2(1.0, 0.0);
        double r154716 = sqrt(r154715);
        double r154717 = r154714 / r154716;
        double r154718 = 2.0;
        double r154719 = x;
        double r154720 = fabs(r154719);
        double r154721 = r154718 * r154720;
        double r154722 = 3.0;
        double r154723 = r154718 / r154722;
        double r154724 = r154720 * r154720;
        double r154725 = r154724 * r154720;
        double r154726 = r154723 * r154725;
        double r154727 = r154721 + r154726;
        double r154728 = 5.0;
        double r154729 = r154714 / r154728;
        double r154730 = r154725 * r154720;
        double r154731 = r154730 * r154720;
        double r154732 = r154729 * r154731;
        double r154733 = r154727 + r154732;
        double r154734 = 6.0;
        double r154735 = pow(r154720, r154734);
        double r154736 = r154714 * r154735;
        double r154737 = r154736 * r154720;
        double r154738 = 21.0;
        double r154739 = r154737 / r154738;
        double r154740 = r154733 + r154739;
        double r154741 = r154717 * r154740;
        double r154742 = fabs(r154741);
        return r154742;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

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 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 \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)}{21}}\right)\right|\]
  4. 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{\color{blue}{\left(1 \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|}}{21}\right)\right|\]
  5. Final simplification0.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{\left(1 \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|}{21}\right)\right|\]

Reproduce

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