\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;
}



Bits error versus x
Results
Initial program 0.2
Taylor expanded around 0 0.2
Final simplification0.2
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)))))))