Average Error: 0.2 → 0.2
Time: 19.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|\frac{1}{\sqrt{\pi}} \cdot \left(\left(\frac{1}{5} \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \left(\left|x\right| \cdot 2 + \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \frac{2}{3}\right)\right) + \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right)\right) \cdot \frac{1}{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(\frac{1}{5} \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \left(\left|x\right| \cdot 2 + \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \frac{2}{3}\right)\right) + \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right)\right) \cdot \frac{1}{21}\right)\right|
double f(double x) {
        double r2447827 = 1.0;
        double r2447828 = atan2(1.0, 0.0);
        double r2447829 = sqrt(r2447828);
        double r2447830 = r2447827 / r2447829;
        double r2447831 = 2.0;
        double r2447832 = x;
        double r2447833 = fabs(r2447832);
        double r2447834 = r2447831 * r2447833;
        double r2447835 = 3.0;
        double r2447836 = r2447831 / r2447835;
        double r2447837 = r2447833 * r2447833;
        double r2447838 = r2447837 * r2447833;
        double r2447839 = r2447836 * r2447838;
        double r2447840 = r2447834 + r2447839;
        double r2447841 = 5.0;
        double r2447842 = r2447827 / r2447841;
        double r2447843 = r2447838 * r2447833;
        double r2447844 = r2447843 * r2447833;
        double r2447845 = r2447842 * r2447844;
        double r2447846 = r2447840 + r2447845;
        double r2447847 = 21.0;
        double r2447848 = r2447827 / r2447847;
        double r2447849 = r2447844 * r2447833;
        double r2447850 = r2447849 * r2447833;
        double r2447851 = r2447848 * r2447850;
        double r2447852 = r2447846 + r2447851;
        double r2447853 = r2447830 * r2447852;
        double r2447854 = fabs(r2447853);
        return r2447854;
}

double f(double x) {
        double r2447855 = 1.0;
        double r2447856 = atan2(1.0, 0.0);
        double r2447857 = sqrt(r2447856);
        double r2447858 = r2447855 / r2447857;
        double r2447859 = 0.2;
        double r2447860 = x;
        double r2447861 = fabs(r2447860);
        double r2447862 = r2447861 * r2447861;
        double r2447863 = r2447862 * r2447861;
        double r2447864 = r2447863 * r2447861;
        double r2447865 = r2447861 * r2447864;
        double r2447866 = r2447859 * r2447865;
        double r2447867 = 2.0;
        double r2447868 = r2447861 * r2447867;
        double r2447869 = 0.6666666666666666;
        double r2447870 = r2447863 * r2447869;
        double r2447871 = r2447868 + r2447870;
        double r2447872 = r2447866 + r2447871;
        double r2447873 = r2447861 * r2447865;
        double r2447874 = r2447861 * r2447873;
        double r2447875 = 0.047619047619047616;
        double r2447876 = r2447874 * r2447875;
        double r2447877 = r2447872 + r2447876;
        double r2447878 = r2447858 * r2447877;
        double r2447879 = fabs(r2447878);
        return r2447879;
}

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. Final simplification0.2

    \[\leadsto \left|\frac{1}{\sqrt{\pi}} \cdot \left(\left(\frac{1}{5} \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \left(\left|x\right| \cdot 2 + \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \frac{2}{3}\right)\right) + \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right)\right) \cdot \frac{1}{21}\right)\right|\]

Reproduce

herbie shell --seed 2019154 +o rules:numerics
(FPCore (x)
  :name "Jmat.Real.erfi, branch x less than or equal to 0.5"
  (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)))))))