Average Error: 0.2 → 0.2
Time: 16.1s
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 r130783 = 1.0;
        double r130784 = atan2(1.0, 0.0);
        double r130785 = sqrt(r130784);
        double r130786 = r130783 / r130785;
        double r130787 = 2.0;
        double r130788 = x;
        double r130789 = fabs(r130788);
        double r130790 = r130787 * r130789;
        double r130791 = 3.0;
        double r130792 = r130787 / r130791;
        double r130793 = r130789 * r130789;
        double r130794 = r130793 * r130789;
        double r130795 = r130792 * r130794;
        double r130796 = r130790 + r130795;
        double r130797 = 5.0;
        double r130798 = r130783 / r130797;
        double r130799 = r130794 * r130789;
        double r130800 = r130799 * r130789;
        double r130801 = r130798 * r130800;
        double r130802 = r130796 + r130801;
        double r130803 = 21.0;
        double r130804 = r130783 / r130803;
        double r130805 = r130800 * r130789;
        double r130806 = r130805 * r130789;
        double r130807 = r130804 * r130806;
        double r130808 = r130802 + r130807;
        double r130809 = r130786 * r130808;
        double r130810 = fabs(r130809);
        return r130810;
}

double f(double x) {
        double r130811 = 1.0;
        double r130812 = atan2(1.0, 0.0);
        double r130813 = sqrt(r130812);
        double r130814 = r130811 / r130813;
        double r130815 = 2.0;
        double r130816 = x;
        double r130817 = fabs(r130816);
        double r130818 = r130815 * r130817;
        double r130819 = 3.0;
        double r130820 = r130815 / r130819;
        double r130821 = r130817 * r130817;
        double r130822 = r130821 * r130817;
        double r130823 = r130820 * r130822;
        double r130824 = r130818 + r130823;
        double r130825 = 5.0;
        double r130826 = r130811 / r130825;
        double r130827 = r130822 * r130817;
        double r130828 = r130827 * r130817;
        double r130829 = r130826 * r130828;
        double r130830 = r130824 + r130829;
        double r130831 = r130811 * r130817;
        double r130832 = 6.0;
        double r130833 = pow(r130817, r130832);
        double r130834 = r130831 * r130833;
        double r130835 = 21.0;
        double r130836 = r130834 / r130835;
        double r130837 = r130830 + r130836;
        double r130838 = r130814 * r130837;
        double r130839 = fabs(r130838);
        return r130839;
}

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 +o rules:numerics
(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)))))))