\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|\mathsf{fma}\left(\frac{1}{5}, {\left(\left|x\right|\right)}^{5}, \mathsf{fma}\left(\left|x\right|, 2, \mathsf{fma}\left(\frac{1}{21}, {\left(\left|x\right|\right)}^{7}, \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left|x\right|\right)\right) \cdot \frac{2}{3}\right)\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|double f(double x) {
double r4387713 = 1.0;
double r4387714 = atan2(1.0, 0.0);
double r4387715 = sqrt(r4387714);
double r4387716 = r4387713 / r4387715;
double r4387717 = 2.0;
double r4387718 = x;
double r4387719 = fabs(r4387718);
double r4387720 = r4387717 * r4387719;
double r4387721 = 3.0;
double r4387722 = r4387717 / r4387721;
double r4387723 = r4387719 * r4387719;
double r4387724 = r4387723 * r4387719;
double r4387725 = r4387722 * r4387724;
double r4387726 = r4387720 + r4387725;
double r4387727 = 5.0;
double r4387728 = r4387713 / r4387727;
double r4387729 = r4387724 * r4387719;
double r4387730 = r4387729 * r4387719;
double r4387731 = r4387728 * r4387730;
double r4387732 = r4387726 + r4387731;
double r4387733 = 21.0;
double r4387734 = r4387713 / r4387733;
double r4387735 = r4387730 * r4387719;
double r4387736 = r4387735 * r4387719;
double r4387737 = r4387734 * r4387736;
double r4387738 = r4387732 + r4387737;
double r4387739 = r4387716 * r4387738;
double r4387740 = fabs(r4387739);
return r4387740;
}
double f(double x) {
double r4387741 = 0.2;
double r4387742 = x;
double r4387743 = fabs(r4387742);
double r4387744 = 5.0;
double r4387745 = pow(r4387743, r4387744);
double r4387746 = 2.0;
double r4387747 = 0.047619047619047616;
double r4387748 = 7.0;
double r4387749 = pow(r4387743, r4387748);
double r4387750 = r4387743 * r4387743;
double r4387751 = r4387743 * r4387750;
double r4387752 = 0.6666666666666666;
double r4387753 = r4387751 * r4387752;
double r4387754 = fma(r4387747, r4387749, r4387753);
double r4387755 = fma(r4387743, r4387746, r4387754);
double r4387756 = fma(r4387741, r4387745, r4387755);
double r4387757 = 1.0;
double r4387758 = atan2(1.0, 0.0);
double r4387759 = r4387757 / r4387758;
double r4387760 = sqrt(r4387759);
double r4387761 = r4387756 * r4387760;
double r4387762 = fabs(r4387761);
return r4387762;
}



Bits error versus x
Initial program 0.2
Taylor expanded around 0 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019158 +o rules:numerics
(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)))))))