Average Error: 0.2 → 0.2
Time: 28.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|\sqrt{\frac{1}{\pi}} \cdot \left(\frac{1}{21} \cdot {\left(\left|x\right|\right)}^{7} + \left({\left(\left|x\right|\right)}^{5} \cdot \frac{1}{5} + \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)\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|\sqrt{\frac{1}{\pi}} \cdot \left(\frac{1}{21} \cdot {\left(\left|x\right|\right)}^{7} + \left({\left(\left|x\right|\right)}^{5} \cdot \frac{1}{5} + \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)\right)\right|
double f(double x) {
        double r5127766 = 1.0;
        double r5127767 = atan2(1.0, 0.0);
        double r5127768 = sqrt(r5127767);
        double r5127769 = r5127766 / r5127768;
        double r5127770 = 2.0;
        double r5127771 = x;
        double r5127772 = fabs(r5127771);
        double r5127773 = r5127770 * r5127772;
        double r5127774 = 3.0;
        double r5127775 = r5127770 / r5127774;
        double r5127776 = r5127772 * r5127772;
        double r5127777 = r5127776 * r5127772;
        double r5127778 = r5127775 * r5127777;
        double r5127779 = r5127773 + r5127778;
        double r5127780 = 5.0;
        double r5127781 = r5127766 / r5127780;
        double r5127782 = r5127777 * r5127772;
        double r5127783 = r5127782 * r5127772;
        double r5127784 = r5127781 * r5127783;
        double r5127785 = r5127779 + r5127784;
        double r5127786 = 21.0;
        double r5127787 = r5127766 / r5127786;
        double r5127788 = r5127783 * r5127772;
        double r5127789 = r5127788 * r5127772;
        double r5127790 = r5127787 * r5127789;
        double r5127791 = r5127785 + r5127790;
        double r5127792 = r5127769 * r5127791;
        double r5127793 = fabs(r5127792);
        return r5127793;
}

double f(double x) {
        double r5127794 = 1.0;
        double r5127795 = atan2(1.0, 0.0);
        double r5127796 = r5127794 / r5127795;
        double r5127797 = sqrt(r5127796);
        double r5127798 = 0.047619047619047616;
        double r5127799 = x;
        double r5127800 = fabs(r5127799);
        double r5127801 = 7.0;
        double r5127802 = pow(r5127800, r5127801);
        double r5127803 = r5127798 * r5127802;
        double r5127804 = 5.0;
        double r5127805 = pow(r5127800, r5127804);
        double r5127806 = 0.2;
        double r5127807 = r5127805 * r5127806;
        double r5127808 = 2.0;
        double r5127809 = r5127800 * r5127808;
        double r5127810 = r5127800 * r5127800;
        double r5127811 = r5127810 * r5127800;
        double r5127812 = 0.6666666666666666;
        double r5127813 = r5127811 * r5127812;
        double r5127814 = r5127809 + r5127813;
        double r5127815 = r5127807 + r5127814;
        double r5127816 = r5127803 + r5127815;
        double r5127817 = r5127797 * r5127816;
        double r5127818 = fabs(r5127817);
        return r5127818;
}

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. Simplified0.6

    \[\leadsto \color{blue}{\left|\frac{\left|x\right| \cdot 2 + \left(\left|x\right| \cdot \left|x\right|\right) \cdot \left(\left(\frac{\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|}{5} + \frac{\left|x\right| \cdot 2}{3}\right) + \frac{\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right)}{21}\right)}{\sqrt{\pi}}\right|}\]
  3. Taylor expanded around inf 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|\]
  4. Simplified0.2

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

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

Reproduce

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