Average Error: 0.2 → 0.2
Time: 28.6s
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|1 \cdot \left(\sqrt{\frac{1}{\pi}} \cdot \left(0.6666666666666666296592325124947819858789 \cdot {\left(\left|x\right|\right)}^{3} + \left(0.2000000000000000111022302462515654042363 \cdot {\left(\left|x\right|\right)}^{5} + \left(2 \cdot \left|x\right| + 0.04761904761904761640423089374962728470564 \cdot {\left(\left|x\right|\right)}^{7}\right)\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{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|1 \cdot \left(\sqrt{\frac{1}{\pi}} \cdot \left(0.6666666666666666296592325124947819858789 \cdot {\left(\left|x\right|\right)}^{3} + \left(0.2000000000000000111022302462515654042363 \cdot {\left(\left|x\right|\right)}^{5} + \left(2 \cdot \left|x\right| + 0.04761904761904761640423089374962728470564 \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)\right)\right|
double f(double x) {
        double r93733 = 1.0;
        double r93734 = atan2(1.0, 0.0);
        double r93735 = sqrt(r93734);
        double r93736 = r93733 / r93735;
        double r93737 = 2.0;
        double r93738 = x;
        double r93739 = fabs(r93738);
        double r93740 = r93737 * r93739;
        double r93741 = 3.0;
        double r93742 = r93737 / r93741;
        double r93743 = r93739 * r93739;
        double r93744 = r93743 * r93739;
        double r93745 = r93742 * r93744;
        double r93746 = r93740 + r93745;
        double r93747 = 5.0;
        double r93748 = r93733 / r93747;
        double r93749 = r93744 * r93739;
        double r93750 = r93749 * r93739;
        double r93751 = r93748 * r93750;
        double r93752 = r93746 + r93751;
        double r93753 = 21.0;
        double r93754 = r93733 / r93753;
        double r93755 = r93750 * r93739;
        double r93756 = r93755 * r93739;
        double r93757 = r93754 * r93756;
        double r93758 = r93752 + r93757;
        double r93759 = r93736 * r93758;
        double r93760 = fabs(r93759);
        return r93760;
}

double f(double x) {
        double r93761 = 1.0;
        double r93762 = 1.0;
        double r93763 = atan2(1.0, 0.0);
        double r93764 = r93762 / r93763;
        double r93765 = sqrt(r93764);
        double r93766 = 0.6666666666666666;
        double r93767 = x;
        double r93768 = fabs(r93767);
        double r93769 = 3.0;
        double r93770 = pow(r93768, r93769);
        double r93771 = r93766 * r93770;
        double r93772 = 0.2;
        double r93773 = 5.0;
        double r93774 = pow(r93768, r93773);
        double r93775 = r93772 * r93774;
        double r93776 = 2.0;
        double r93777 = r93776 * r93768;
        double r93778 = 0.047619047619047616;
        double r93779 = 7.0;
        double r93780 = pow(r93768, r93779);
        double r93781 = r93778 * r93780;
        double r93782 = r93777 + r93781;
        double r93783 = r93775 + r93782;
        double r93784 = r93771 + r93783;
        double r93785 = r93765 * r93784;
        double r93786 = r93761 * r93785;
        double r93787 = fabs(r93786);
        return r93787;
}

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

    \[\leadsto \left|\color{blue}{1 \cdot \left(\sqrt{\frac{1}{\pi}} \cdot \left(0.6666666666666666296592325124947819858789 \cdot {\left(\left|x\right|\right)}^{3} + \left(0.2000000000000000111022302462515654042363 \cdot {\left(\left|x\right|\right)}^{5} + \left(2 \cdot \left|x\right| + 0.04761904761904761640423089374962728470564 \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)\right)}\right|\]
  3. Final simplification0.2

    \[\leadsto \left|1 \cdot \left(\sqrt{\frac{1}{\pi}} \cdot \left(0.6666666666666666296592325124947819858789 \cdot {\left(\left|x\right|\right)}^{3} + \left(0.2000000000000000111022302462515654042363 \cdot {\left(\left|x\right|\right)}^{5} + \left(2 \cdot \left|x\right| + 0.04761904761904761640423089374962728470564 \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)\right)\right|\]

Reproduce

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