Average Error: 0.2 → 0.2
Time: 1.9m
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(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{5} + \left(\left(\frac{2}{3} \cdot \left|x\right|\right) \cdot \left|x\right| + 2\right) \cdot \left|x\right|\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|\]
double f(double x) {
        double r9938653 = 1.0;
        double r9938654 = atan2(1.0, 0.0);
        double r9938655 = sqrt(r9938654);
        double r9938656 = r9938653 / r9938655;
        double r9938657 = 2.0;
        double r9938658 = x;
        double r9938659 = fabs(r9938658);
        double r9938660 = r9938657 * r9938659;
        double r9938661 = 3.0;
        double r9938662 = r9938657 / r9938661;
        double r9938663 = r9938659 * r9938659;
        double r9938664 = r9938663 * r9938659;
        double r9938665 = r9938662 * r9938664;
        double r9938666 = r9938660 + r9938665;
        double r9938667 = 5.0;
        double r9938668 = r9938653 / r9938667;
        double r9938669 = r9938664 * r9938659;
        double r9938670 = r9938669 * r9938659;
        double r9938671 = r9938668 * r9938670;
        double r9938672 = r9938666 + r9938671;
        double r9938673 = 21.0;
        double r9938674 = r9938653 / r9938673;
        double r9938675 = r9938670 * r9938659;
        double r9938676 = r9938675 * r9938659;
        double r9938677 = r9938674 * r9938676;
        double r9938678 = r9938672 + r9938677;
        double r9938679 = r9938656 * r9938678;
        double r9938680 = fabs(r9938679);
        return r9938680;
}

double f(double x) {
        double r9938681 = 0.047619047619047616;
        double r9938682 = x;
        double r9938683 = fabs(r9938682);
        double r9938684 = 7.0;
        double r9938685 = pow(r9938683, r9938684);
        double r9938686 = r9938681 * r9938685;
        double r9938687 = 0.2;
        double r9938688 = 5.0;
        double r9938689 = pow(r9938683, r9938688);
        double r9938690 = r9938687 * r9938689;
        double r9938691 = 0.6666666666666666;
        double r9938692 = r9938691 * r9938683;
        double r9938693 = r9938692 * r9938683;
        double r9938694 = 2.0;
        double r9938695 = r9938693 + r9938694;
        double r9938696 = r9938695 * r9938683;
        double r9938697 = r9938690 + r9938696;
        double r9938698 = r9938686 + r9938697;
        double r9938699 = 1.0;
        double r9938700 = atan2(1.0, 0.0);
        double r9938701 = r9938699 / r9938700;
        double r9938702 = sqrt(r9938701);
        double r9938703 = r9938698 * r9938702;
        double r9938704 = fabs(r9938703);
        return r9938704;
}

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

Error

Bits error versus x

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}{\sqrt{\frac{1}{\pi}} \cdot \left(\left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{5} + \left|x\right| \cdot \left(2 + \left(\frac{2}{3} \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{21} \cdot {\left(\left|x\right|\right)}^{7}\right)}\right|\]
  4. Final simplification0.2

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

Reproduce

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