\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(1 \cdot \sqrt{\frac{1}{\pi}}\right) \cdot \mathsf{fma}\left(0.6666666666666666296592325124947819858789, {\left(\left|x\right|\right)}^{3}, \mathsf{fma}\left(0.2000000000000000111022302462515654042363, {\left(\left|x\right|\right)}^{5}, \mathsf{fma}\left(2, \left|x\right|, 0.04761904761904761640423089374962728470564 \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)\right|double f(double x) {
double r93756 = 1.0;
double r93757 = atan2(1.0, 0.0);
double r93758 = sqrt(r93757);
double r93759 = r93756 / r93758;
double r93760 = 2.0;
double r93761 = x;
double r93762 = fabs(r93761);
double r93763 = r93760 * r93762;
double r93764 = 3.0;
double r93765 = r93760 / r93764;
double r93766 = r93762 * r93762;
double r93767 = r93766 * r93762;
double r93768 = r93765 * r93767;
double r93769 = r93763 + r93768;
double r93770 = 5.0;
double r93771 = r93756 / r93770;
double r93772 = r93767 * r93762;
double r93773 = r93772 * r93762;
double r93774 = r93771 * r93773;
double r93775 = r93769 + r93774;
double r93776 = 21.0;
double r93777 = r93756 / r93776;
double r93778 = r93773 * r93762;
double r93779 = r93778 * r93762;
double r93780 = r93777 * r93779;
double r93781 = r93775 + r93780;
double r93782 = r93759 * r93781;
double r93783 = fabs(r93782);
return r93783;
}
double f(double x) {
double r93784 = 1.0;
double r93785 = 1.0;
double r93786 = atan2(1.0, 0.0);
double r93787 = r93785 / r93786;
double r93788 = sqrt(r93787);
double r93789 = r93784 * r93788;
double r93790 = 0.6666666666666666;
double r93791 = x;
double r93792 = fabs(r93791);
double r93793 = 3.0;
double r93794 = pow(r93792, r93793);
double r93795 = 0.2;
double r93796 = 5.0;
double r93797 = pow(r93792, r93796);
double r93798 = 2.0;
double r93799 = 0.047619047619047616;
double r93800 = 7.0;
double r93801 = pow(r93792, r93800);
double r93802 = r93799 * r93801;
double r93803 = fma(r93798, r93792, r93802);
double r93804 = fma(r93795, r93797, r93803);
double r93805 = fma(r93790, r93794, r93804);
double r93806 = r93789 * r93805;
double r93807 = fabs(r93806);
return r93807;
}



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