Average Error: 0.2 → 0.1
Time: 5.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|\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) + \left(\left(1 \cdot \frac{\frac{1}{\sqrt{\pi}}}{21}\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 \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) + \left(\left(1 \cdot \frac{\frac{1}{\sqrt{\pi}}}{21}\right) \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|\right|
double f(double x) {
        double r220695 = 1.0;
        double r220696 = atan2(1.0, 0.0);
        double r220697 = sqrt(r220696);
        double r220698 = r220695 / r220697;
        double r220699 = 2.0;
        double r220700 = x;
        double r220701 = fabs(r220700);
        double r220702 = r220699 * r220701;
        double r220703 = 3.0;
        double r220704 = r220699 / r220703;
        double r220705 = r220701 * r220701;
        double r220706 = r220705 * r220701;
        double r220707 = r220704 * r220706;
        double r220708 = r220702 + r220707;
        double r220709 = 5.0;
        double r220710 = r220695 / r220709;
        double r220711 = r220706 * r220701;
        double r220712 = r220711 * r220701;
        double r220713 = r220710 * r220712;
        double r220714 = r220708 + r220713;
        double r220715 = 21.0;
        double r220716 = r220695 / r220715;
        double r220717 = r220712 * r220701;
        double r220718 = r220717 * r220701;
        double r220719 = r220716 * r220718;
        double r220720 = r220714 + r220719;
        double r220721 = r220698 * r220720;
        double r220722 = fabs(r220721);
        return r220722;
}

double f(double x) {
        double r220723 = 1.0;
        double r220724 = atan2(1.0, 0.0);
        double r220725 = sqrt(r220724);
        double r220726 = r220723 / r220725;
        double r220727 = 2.0;
        double r220728 = x;
        double r220729 = fabs(r220728);
        double r220730 = r220727 * r220729;
        double r220731 = 3.0;
        double r220732 = r220727 / r220731;
        double r220733 = r220729 * r220729;
        double r220734 = r220733 * r220729;
        double r220735 = r220732 * r220734;
        double r220736 = r220730 + r220735;
        double r220737 = 5.0;
        double r220738 = r220723 / r220737;
        double r220739 = r220734 * r220729;
        double r220740 = r220739 * r220729;
        double r220741 = r220738 * r220740;
        double r220742 = r220736 + r220741;
        double r220743 = r220726 * r220742;
        double r220744 = 21.0;
        double r220745 = r220726 / r220744;
        double r220746 = r220723 * r220745;
        double r220747 = 6.0;
        double r220748 = pow(r220729, r220747);
        double r220749 = r220746 * r220748;
        double r220750 = r220749 * r220729;
        double r220751 = r220743 + r220750;
        double r220752 = fabs(r220751);
        return r220752;
}

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 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|\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) + \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|\]
  5. Using strategy rm
  6. Applied div-inv0.2

    \[\leadsto \left|\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) + \left(\left(\color{blue}{\left(1 \cdot \frac{1}{\sqrt{\pi}}\right)} \cdot \frac{1}{21}\right) \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|\right|\]
  7. Applied associate-*l*0.2

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

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

Reproduce

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