Average Error: 0.2 → 0.2
Time: 16.0s
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(\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{\left(1 \cdot \left|x\right|\right) \cdot {\left(\left|x\right|\right)}^{6}}{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(\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{\left(1 \cdot \left|x\right|\right) \cdot {\left(\left|x\right|\right)}^{6}}{21}\right)\right|
double f(double x) {
        double r25848 = 1.0;
        double r25849 = atan2(1.0, 0.0);
        double r25850 = sqrt(r25849);
        double r25851 = r25848 / r25850;
        double r25852 = 2.0;
        double r25853 = x;
        double r25854 = fabs(r25853);
        double r25855 = r25852 * r25854;
        double r25856 = 3.0;
        double r25857 = r25852 / r25856;
        double r25858 = r25854 * r25854;
        double r25859 = r25858 * r25854;
        double r25860 = r25857 * r25859;
        double r25861 = r25855 + r25860;
        double r25862 = 5.0;
        double r25863 = r25848 / r25862;
        double r25864 = r25859 * r25854;
        double r25865 = r25864 * r25854;
        double r25866 = r25863 * r25865;
        double r25867 = r25861 + r25866;
        double r25868 = 21.0;
        double r25869 = r25848 / r25868;
        double r25870 = r25865 * r25854;
        double r25871 = r25870 * r25854;
        double r25872 = r25869 * r25871;
        double r25873 = r25867 + r25872;
        double r25874 = r25851 * r25873;
        double r25875 = fabs(r25874);
        return r25875;
}

double f(double x) {
        double r25876 = 1.0;
        double r25877 = atan2(1.0, 0.0);
        double r25878 = sqrt(r25877);
        double r25879 = r25876 / r25878;
        double r25880 = 2.0;
        double r25881 = x;
        double r25882 = fabs(r25881);
        double r25883 = r25880 * r25882;
        double r25884 = 3.0;
        double r25885 = r25880 / r25884;
        double r25886 = r25882 * r25882;
        double r25887 = r25886 * r25882;
        double r25888 = r25885 * r25887;
        double r25889 = r25883 + r25888;
        double r25890 = 5.0;
        double r25891 = r25876 / r25890;
        double r25892 = r25887 * r25882;
        double r25893 = r25892 * r25882;
        double r25894 = r25891 * r25893;
        double r25895 = r25889 + r25894;
        double r25896 = r25876 * r25882;
        double r25897 = 6.0;
        double r25898 = pow(r25882, r25897);
        double r25899 = r25896 * r25898;
        double r25900 = 21.0;
        double r25901 = r25899 / r25900;
        double r25902 = r25895 + r25901;
        double r25903 = r25879 * r25902;
        double r25904 = fabs(r25903);
        return r25904;
}

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. Using strategy rm
  3. Applied associate-*l/0.2

    \[\leadsto \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) + \color{blue}{\frac{1 \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)}{21}}\right)\right|\]
  4. Simplified0.2

    \[\leadsto \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{\color{blue}{\left(1 \cdot \left|x\right|\right) \cdot {\left(\left|x\right|\right)}^{6}}}{21}\right)\right|\]
  5. Final simplification0.2

    \[\leadsto \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{\left(1 \cdot \left|x\right|\right) \cdot {\left(\left|x\right|\right)}^{6}}{21}\right)\right|\]

Reproduce

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