Average Error: 0.2 → 0.2
Time: 2.2m
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(\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) + \frac{1}{21} \cdot \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left(\left|x\right| \cdot {\left(\left|x\right|\right)}^{3}\right) \cdot \left|x\right|\right)\right)\right)\right) \cdot \frac{1}{\sqrt{\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(\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) + \frac{1}{21} \cdot \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left(\left|x\right| \cdot {\left(\left|x\right|\right)}^{3}\right) \cdot \left|x\right|\right)\right)\right)\right) \cdot \frac{1}{\sqrt{\pi}}\right|
double f(double x) {
        double r35910820 = 1.0;
        double r35910821 = atan2(1.0, 0.0);
        double r35910822 = sqrt(r35910821);
        double r35910823 = r35910820 / r35910822;
        double r35910824 = 2.0;
        double r35910825 = x;
        double r35910826 = fabs(r35910825);
        double r35910827 = r35910824 * r35910826;
        double r35910828 = 3.0;
        double r35910829 = r35910824 / r35910828;
        double r35910830 = r35910826 * r35910826;
        double r35910831 = r35910830 * r35910826;
        double r35910832 = r35910829 * r35910831;
        double r35910833 = r35910827 + r35910832;
        double r35910834 = 5.0;
        double r35910835 = r35910820 / r35910834;
        double r35910836 = r35910831 * r35910826;
        double r35910837 = r35910836 * r35910826;
        double r35910838 = r35910835 * r35910837;
        double r35910839 = r35910833 + r35910838;
        double r35910840 = 21.0;
        double r35910841 = r35910820 / r35910840;
        double r35910842 = r35910837 * r35910826;
        double r35910843 = r35910842 * r35910826;
        double r35910844 = r35910841 * r35910843;
        double r35910845 = r35910839 + r35910844;
        double r35910846 = r35910823 * r35910845;
        double r35910847 = fabs(r35910846);
        return r35910847;
}

double f(double x) {
        double r35910848 = 0.2;
        double r35910849 = x;
        double r35910850 = fabs(r35910849);
        double r35910851 = r35910850 * r35910850;
        double r35910852 = r35910851 * r35910850;
        double r35910853 = r35910852 * r35910850;
        double r35910854 = r35910850 * r35910853;
        double r35910855 = r35910848 * r35910854;
        double r35910856 = 2.0;
        double r35910857 = r35910850 * r35910856;
        double r35910858 = 0.6666666666666666;
        double r35910859 = r35910852 * r35910858;
        double r35910860 = r35910857 + r35910859;
        double r35910861 = r35910855 + r35910860;
        double r35910862 = 0.047619047619047616;
        double r35910863 = 3.0;
        double r35910864 = pow(r35910850, r35910863);
        double r35910865 = r35910850 * r35910864;
        double r35910866 = r35910865 * r35910850;
        double r35910867 = r35910850 * r35910866;
        double r35910868 = r35910850 * r35910867;
        double r35910869 = r35910862 * r35910868;
        double r35910870 = r35910861 + r35910869;
        double r35910871 = 1.0;
        double r35910872 = atan2(1.0, 0.0);
        double r35910873 = sqrt(r35910872);
        double r35910874 = r35910871 / r35910873;
        double r35910875 = r35910870 * r35910874;
        double r35910876 = fabs(r35910875);
        return r35910876;
}

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 pow30.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{1}{21} \cdot \left(\left(\left(\left(\color{blue}{{\left(\left|x\right|\right)}^{3}} \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right|\]
  4. Final simplification0.2

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

Reproduce

herbie shell --seed 2019125 +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)))))))