Average Error: 0.2 → 0.2
Time: 6.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|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 r137948 = 1.0;
        double r137949 = atan2(1.0, 0.0);
        double r137950 = sqrt(r137949);
        double r137951 = r137948 / r137950;
        double r137952 = 2.0;
        double r137953 = x;
        double r137954 = fabs(r137953);
        double r137955 = r137952 * r137954;
        double r137956 = 3.0;
        double r137957 = r137952 / r137956;
        double r137958 = r137954 * r137954;
        double r137959 = r137958 * r137954;
        double r137960 = r137957 * r137959;
        double r137961 = r137955 + r137960;
        double r137962 = 5.0;
        double r137963 = r137948 / r137962;
        double r137964 = r137959 * r137954;
        double r137965 = r137964 * r137954;
        double r137966 = r137963 * r137965;
        double r137967 = r137961 + r137966;
        double r137968 = 21.0;
        double r137969 = r137948 / r137968;
        double r137970 = r137965 * r137954;
        double r137971 = r137970 * r137954;
        double r137972 = r137969 * r137971;
        double r137973 = r137967 + r137972;
        double r137974 = r137951 * r137973;
        double r137975 = fabs(r137974);
        return r137975;
}

double f(double x) {
        double r137976 = 1.0;
        double r137977 = 1.0;
        double r137978 = atan2(1.0, 0.0);
        double r137979 = r137977 / r137978;
        double r137980 = sqrt(r137979);
        double r137981 = 0.6666666666666666;
        double r137982 = x;
        double r137983 = fabs(r137982);
        double r137984 = 3.0;
        double r137985 = pow(r137983, r137984);
        double r137986 = r137981 * r137985;
        double r137987 = 0.2;
        double r137988 = 5.0;
        double r137989 = pow(r137983, r137988);
        double r137990 = r137987 * r137989;
        double r137991 = 2.0;
        double r137992 = r137991 * r137983;
        double r137993 = 0.047619047619047616;
        double r137994 = 7.0;
        double r137995 = pow(r137983, r137994);
        double r137996 = r137993 * r137995;
        double r137997 = r137992 + r137996;
        double r137998 = r137990 + r137997;
        double r137999 = r137986 + r137998;
        double r138000 = r137980 * r137999;
        double r138001 = r137976 * r138000;
        double r138002 = fabs(r138001);
        return r138002;
}

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 2020064 
(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)))))))