Average Error: 0.2 → 0.2
Time: 41.4s
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|\left(\frac{1}{21} \cdot {\left(\left|x\right|\right)}^{7} + \left({\left(\left|x\right|\right)}^{5} \cdot \frac{1}{5} + \left(2 + \left(\left|x\right| \cdot \frac{2}{3}\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) \cdot \sqrt{\frac{1}{\pi}}\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|\left(\frac{1}{21} \cdot {\left(\left|x\right|\right)}^{7} + \left({\left(\left|x\right|\right)}^{5} \cdot \frac{1}{5} + \left(2 + \left(\left|x\right| \cdot \frac{2}{3}\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|
double f(double x) {
        double r6417893 = 1.0;
        double r6417894 = atan2(1.0, 0.0);
        double r6417895 = sqrt(r6417894);
        double r6417896 = r6417893 / r6417895;
        double r6417897 = 2.0;
        double r6417898 = x;
        double r6417899 = fabs(r6417898);
        double r6417900 = r6417897 * r6417899;
        double r6417901 = 3.0;
        double r6417902 = r6417897 / r6417901;
        double r6417903 = r6417899 * r6417899;
        double r6417904 = r6417903 * r6417899;
        double r6417905 = r6417902 * r6417904;
        double r6417906 = r6417900 + r6417905;
        double r6417907 = 5.0;
        double r6417908 = r6417893 / r6417907;
        double r6417909 = r6417904 * r6417899;
        double r6417910 = r6417909 * r6417899;
        double r6417911 = r6417908 * r6417910;
        double r6417912 = r6417906 + r6417911;
        double r6417913 = 21.0;
        double r6417914 = r6417893 / r6417913;
        double r6417915 = r6417910 * r6417899;
        double r6417916 = r6417915 * r6417899;
        double r6417917 = r6417914 * r6417916;
        double r6417918 = r6417912 + r6417917;
        double r6417919 = r6417896 * r6417918;
        double r6417920 = fabs(r6417919);
        return r6417920;
}

double f(double x) {
        double r6417921 = 0.047619047619047616;
        double r6417922 = x;
        double r6417923 = fabs(r6417922);
        double r6417924 = 7.0;
        double r6417925 = pow(r6417923, r6417924);
        double r6417926 = r6417921 * r6417925;
        double r6417927 = 5.0;
        double r6417928 = pow(r6417923, r6417927);
        double r6417929 = 0.2;
        double r6417930 = r6417928 * r6417929;
        double r6417931 = 2.0;
        double r6417932 = 0.6666666666666666;
        double r6417933 = r6417923 * r6417932;
        double r6417934 = r6417933 * r6417923;
        double r6417935 = r6417931 + r6417934;
        double r6417936 = r6417935 * r6417923;
        double r6417937 = r6417930 + r6417936;
        double r6417938 = r6417926 + r6417937;
        double r6417939 = 1.0;
        double r6417940 = atan2(1.0, 0.0);
        double r6417941 = r6417939 / r6417940;
        double r6417942 = sqrt(r6417941);
        double r6417943 = r6417938 * r6417942;
        double r6417944 = fabs(r6417943);
        return r6417944;
}

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}{\sqrt{\frac{1}{\pi}} \cdot \left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{5} + \left(2 \cdot \left|x\right| + \left(\frac{2}{3} \cdot {\left(\left|x\right|\right)}^{3} + \frac{1}{21} \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)}\right|\]
  3. Simplified0.2

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

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

Reproduce

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