\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.66666666666666663 \cdot {\left(\left|x\right|\right)}^{3} + \left(0.20000000000000001 \cdot {\left(\left|x\right|\right)}^{5} + \left(2 \cdot \left|x\right| + 0.047619047619047616 \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)\right)\right|double f(double x) {
double r167892 = 1.0;
double r167893 = atan2(1.0, 0.0);
double r167894 = sqrt(r167893);
double r167895 = r167892 / r167894;
double r167896 = 2.0;
double r167897 = x;
double r167898 = fabs(r167897);
double r167899 = r167896 * r167898;
double r167900 = 3.0;
double r167901 = r167896 / r167900;
double r167902 = r167898 * r167898;
double r167903 = r167902 * r167898;
double r167904 = r167901 * r167903;
double r167905 = r167899 + r167904;
double r167906 = 5.0;
double r167907 = r167892 / r167906;
double r167908 = r167903 * r167898;
double r167909 = r167908 * r167898;
double r167910 = r167907 * r167909;
double r167911 = r167905 + r167910;
double r167912 = 21.0;
double r167913 = r167892 / r167912;
double r167914 = r167909 * r167898;
double r167915 = r167914 * r167898;
double r167916 = r167913 * r167915;
double r167917 = r167911 + r167916;
double r167918 = r167895 * r167917;
double r167919 = fabs(r167918);
return r167919;
}
double f(double x) {
double r167920 = 1.0;
double r167921 = 1.0;
double r167922 = atan2(1.0, 0.0);
double r167923 = r167921 / r167922;
double r167924 = sqrt(r167923);
double r167925 = 0.6666666666666666;
double r167926 = x;
double r167927 = fabs(r167926);
double r167928 = 3.0;
double r167929 = pow(r167927, r167928);
double r167930 = r167925 * r167929;
double r167931 = 0.2;
double r167932 = 5.0;
double r167933 = pow(r167927, r167932);
double r167934 = r167931 * r167933;
double r167935 = 2.0;
double r167936 = r167935 * r167927;
double r167937 = 0.047619047619047616;
double r167938 = 7.0;
double r167939 = pow(r167927, r167938);
double r167940 = r167937 * r167939;
double r167941 = r167936 + r167940;
double r167942 = r167934 + r167941;
double r167943 = r167930 + r167942;
double r167944 = r167924 * r167943;
double r167945 = r167920 * r167944;
double r167946 = fabs(r167945);
return r167946;
}



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