Average Error: 0.2 → 0.2
Time: 7.8s
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.66666666666666663 \cdot {\left(\left|x\right|\right)}^{3} + \left(0.20000000000000001 \cdot {\left(\left|x\right|\right)}^{5} + \left(2 \cdot \left|x\right| + 0.047619047619047616 \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.66666666666666663 \cdot {\left(\left|x\right|\right)}^{3} + \left(0.20000000000000001 \cdot {\left(\left|x\right|\right)}^{5} + \left(2 \cdot \left|x\right| + 0.047619047619047616 \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)\right)\right|
double f(double x) {
        double r273922 = 1.0;
        double r273923 = atan2(1.0, 0.0);
        double r273924 = sqrt(r273923);
        double r273925 = r273922 / r273924;
        double r273926 = 2.0;
        double r273927 = x;
        double r273928 = fabs(r273927);
        double r273929 = r273926 * r273928;
        double r273930 = 3.0;
        double r273931 = r273926 / r273930;
        double r273932 = r273928 * r273928;
        double r273933 = r273932 * r273928;
        double r273934 = r273931 * r273933;
        double r273935 = r273929 + r273934;
        double r273936 = 5.0;
        double r273937 = r273922 / r273936;
        double r273938 = r273933 * r273928;
        double r273939 = r273938 * r273928;
        double r273940 = r273937 * r273939;
        double r273941 = r273935 + r273940;
        double r273942 = 21.0;
        double r273943 = r273922 / r273942;
        double r273944 = r273939 * r273928;
        double r273945 = r273944 * r273928;
        double r273946 = r273943 * r273945;
        double r273947 = r273941 + r273946;
        double r273948 = r273925 * r273947;
        double r273949 = fabs(r273948);
        return r273949;
}

double f(double x) {
        double r273950 = 1.0;
        double r273951 = 1.0;
        double r273952 = atan2(1.0, 0.0);
        double r273953 = r273951 / r273952;
        double r273954 = sqrt(r273953);
        double r273955 = 0.6666666666666666;
        double r273956 = x;
        double r273957 = fabs(r273956);
        double r273958 = 3.0;
        double r273959 = pow(r273957, r273958);
        double r273960 = r273955 * r273959;
        double r273961 = 0.2;
        double r273962 = 5.0;
        double r273963 = pow(r273957, r273962);
        double r273964 = r273961 * r273963;
        double r273965 = 2.0;
        double r273966 = r273965 * r273957;
        double r273967 = 0.047619047619047616;
        double r273968 = 7.0;
        double r273969 = pow(r273957, r273968);
        double r273970 = r273967 * r273969;
        double r273971 = r273966 + r273970;
        double r273972 = r273964 + r273971;
        double r273973 = r273960 + r273972;
        double r273974 = r273954 * r273973;
        double r273975 = r273950 * r273974;
        double r273976 = fabs(r273975);
        return r273976;
}

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.66666666666666663 \cdot {\left(\left|x\right|\right)}^{3} + \left(0.20000000000000001 \cdot {\left(\left|x\right|\right)}^{5} + \left(2 \cdot \left|x\right| + 0.047619047619047616 \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.66666666666666663 \cdot {\left(\left|x\right|\right)}^{3} + \left(0.20000000000000001 \cdot {\left(\left|x\right|\right)}^{5} + \left(2 \cdot \left|x\right| + 0.047619047619047616 \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)\right)\right|\]

Reproduce

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