\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 r5557713 = 1.0;
double r5557714 = atan2(1.0, 0.0);
double r5557715 = sqrt(r5557714);
double r5557716 = r5557713 / r5557715;
double r5557717 = 2.0;
double r5557718 = x;
double r5557719 = fabs(r5557718);
double r5557720 = r5557717 * r5557719;
double r5557721 = 3.0;
double r5557722 = r5557717 / r5557721;
double r5557723 = r5557719 * r5557719;
double r5557724 = r5557723 * r5557719;
double r5557725 = r5557722 * r5557724;
double r5557726 = r5557720 + r5557725;
double r5557727 = 5.0;
double r5557728 = r5557713 / r5557727;
double r5557729 = r5557724 * r5557719;
double r5557730 = r5557729 * r5557719;
double r5557731 = r5557728 * r5557730;
double r5557732 = r5557726 + r5557731;
double r5557733 = 21.0;
double r5557734 = r5557713 / r5557733;
double r5557735 = r5557730 * r5557719;
double r5557736 = r5557735 * r5557719;
double r5557737 = r5557734 * r5557736;
double r5557738 = r5557732 + r5557737;
double r5557739 = r5557716 * r5557738;
double r5557740 = fabs(r5557739);
return r5557740;
}
double f(double x) {
double r5557741 = 0.2;
double r5557742 = x;
double r5557743 = fabs(r5557742);
double r5557744 = 5.0;
double r5557745 = pow(r5557743, r5557744);
double r5557746 = 2.0;
double r5557747 = 0.047619047619047616;
double r5557748 = 7.0;
double r5557749 = pow(r5557743, r5557748);
double r5557750 = r5557743 * r5557743;
double r5557751 = r5557743 * r5557750;
double r5557752 = 0.6666666666666666;
double r5557753 = r5557751 * r5557752;
double r5557754 = fma(r5557747, r5557749, r5557753);
double r5557755 = fma(r5557743, r5557746, r5557754);
double r5557756 = fma(r5557741, r5557745, r5557755);
double r5557757 = 1.0;
double r5557758 = atan2(1.0, 0.0);
double r5557759 = r5557757 / r5557758;
double r5557760 = sqrt(r5557759);
double r5557761 = r5557756 * r5557760;
double r5557762 = fabs(r5557761);
return r5557762;
}



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