Average Error: 0.2 → 0.2
Time: 40.2s
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(\left|x\right| \cdot \left(\frac{2}{3} \cdot \left|x\right|\right) + 2\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(\left|x\right| \cdot \left(\frac{2}{3} \cdot \left|x\right|\right) + 2\right) \cdot \left|x\right|\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|
double f(double x) {
        double r5962677 = 1.0;
        double r5962678 = atan2(1.0, 0.0);
        double r5962679 = sqrt(r5962678);
        double r5962680 = r5962677 / r5962679;
        double r5962681 = 2.0;
        double r5962682 = x;
        double r5962683 = fabs(r5962682);
        double r5962684 = r5962681 * r5962683;
        double r5962685 = 3.0;
        double r5962686 = r5962681 / r5962685;
        double r5962687 = r5962683 * r5962683;
        double r5962688 = r5962687 * r5962683;
        double r5962689 = r5962686 * r5962688;
        double r5962690 = r5962684 + r5962689;
        double r5962691 = 5.0;
        double r5962692 = r5962677 / r5962691;
        double r5962693 = r5962688 * r5962683;
        double r5962694 = r5962693 * r5962683;
        double r5962695 = r5962692 * r5962694;
        double r5962696 = r5962690 + r5962695;
        double r5962697 = 21.0;
        double r5962698 = r5962677 / r5962697;
        double r5962699 = r5962694 * r5962683;
        double r5962700 = r5962699 * r5962683;
        double r5962701 = r5962698 * r5962700;
        double r5962702 = r5962696 + r5962701;
        double r5962703 = r5962680 * r5962702;
        double r5962704 = fabs(r5962703);
        return r5962704;
}

double f(double x) {
        double r5962705 = 0.047619047619047616;
        double r5962706 = x;
        double r5962707 = fabs(r5962706);
        double r5962708 = 7.0;
        double r5962709 = pow(r5962707, r5962708);
        double r5962710 = r5962705 * r5962709;
        double r5962711 = 5.0;
        double r5962712 = pow(r5962707, r5962711);
        double r5962713 = 0.2;
        double r5962714 = r5962712 * r5962713;
        double r5962715 = 0.6666666666666666;
        double r5962716 = r5962715 * r5962707;
        double r5962717 = r5962707 * r5962716;
        double r5962718 = 2.0;
        double r5962719 = r5962717 + r5962718;
        double r5962720 = r5962719 * r5962707;
        double r5962721 = r5962714 + r5962720;
        double r5962722 = r5962710 + r5962721;
        double r5962723 = 1.0;
        double r5962724 = atan2(1.0, 0.0);
        double r5962725 = r5962723 / r5962724;
        double r5962726 = sqrt(r5962725);
        double r5962727 = r5962722 * r5962726;
        double r5962728 = fabs(r5962727);
        return r5962728;
}

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 -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|\]
  3. Simplified0.2

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

Reproduce

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