Average Error: 0.2 → 0.2
Time: 23.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|1 \cdot \left(\sqrt{\frac{1}{\pi}} \cdot \left(0.6666666666666666296592325124947819858789 \cdot {\left(\left|x\right|\right)}^{3} + \left(0.2000000000000000111022302462515654042363 \cdot {\left(\left|x\right|\right)}^{5} + \left(2 \cdot \left|x\right| + 0.04761904761904761640423089374962728470564 \cdot {\left(\left|x\right|\right)}^{7}\right)\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|1 \cdot \left(\sqrt{\frac{1}{\pi}} \cdot \left(0.6666666666666666296592325124947819858789 \cdot {\left(\left|x\right|\right)}^{3} + \left(0.2000000000000000111022302462515654042363 \cdot {\left(\left|x\right|\right)}^{5} + \left(2 \cdot \left|x\right| + 0.04761904761904761640423089374962728470564 \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)\right)\right|
double f(double x) {
        double r115544 = 1.0;
        double r115545 = atan2(1.0, 0.0);
        double r115546 = sqrt(r115545);
        double r115547 = r115544 / r115546;
        double r115548 = 2.0;
        double r115549 = x;
        double r115550 = fabs(r115549);
        double r115551 = r115548 * r115550;
        double r115552 = 3.0;
        double r115553 = r115548 / r115552;
        double r115554 = r115550 * r115550;
        double r115555 = r115554 * r115550;
        double r115556 = r115553 * r115555;
        double r115557 = r115551 + r115556;
        double r115558 = 5.0;
        double r115559 = r115544 / r115558;
        double r115560 = r115555 * r115550;
        double r115561 = r115560 * r115550;
        double r115562 = r115559 * r115561;
        double r115563 = r115557 + r115562;
        double r115564 = 21.0;
        double r115565 = r115544 / r115564;
        double r115566 = r115561 * r115550;
        double r115567 = r115566 * r115550;
        double r115568 = r115565 * r115567;
        double r115569 = r115563 + r115568;
        double r115570 = r115547 * r115569;
        double r115571 = fabs(r115570);
        return r115571;
}

double f(double x) {
        double r115572 = 1.0;
        double r115573 = 1.0;
        double r115574 = atan2(1.0, 0.0);
        double r115575 = r115573 / r115574;
        double r115576 = sqrt(r115575);
        double r115577 = 0.6666666666666666;
        double r115578 = x;
        double r115579 = fabs(r115578);
        double r115580 = 3.0;
        double r115581 = pow(r115579, r115580);
        double r115582 = r115577 * r115581;
        double r115583 = 0.2;
        double r115584 = 5.0;
        double r115585 = pow(r115579, r115584);
        double r115586 = r115583 * r115585;
        double r115587 = 2.0;
        double r115588 = r115587 * r115579;
        double r115589 = 0.047619047619047616;
        double r115590 = 7.0;
        double r115591 = pow(r115579, r115590);
        double r115592 = r115589 * r115591;
        double r115593 = r115588 + r115592;
        double r115594 = r115586 + r115593;
        double r115595 = r115582 + r115594;
        double r115596 = r115576 * r115595;
        double r115597 = r115572 * r115596;
        double r115598 = fabs(r115597);
        return r115598;
}

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 0 0.2

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

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

Reproduce

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