\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({\left(\left|x\right|\right)}^{7} \cdot \frac{1}{21} + \left(\frac{1}{5} \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \left(\left|x\right| \cdot 2 + \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \frac{2}{3}\right)\right)\right) \cdot \frac{1}{\sqrt{\pi}}\right|double f(double x) {
double r2356906 = 1.0;
double r2356907 = atan2(1.0, 0.0);
double r2356908 = sqrt(r2356907);
double r2356909 = r2356906 / r2356908;
double r2356910 = 2.0;
double r2356911 = x;
double r2356912 = fabs(r2356911);
double r2356913 = r2356910 * r2356912;
double r2356914 = 3.0;
double r2356915 = r2356910 / r2356914;
double r2356916 = r2356912 * r2356912;
double r2356917 = r2356916 * r2356912;
double r2356918 = r2356915 * r2356917;
double r2356919 = r2356913 + r2356918;
double r2356920 = 5.0;
double r2356921 = r2356906 / r2356920;
double r2356922 = r2356917 * r2356912;
double r2356923 = r2356922 * r2356912;
double r2356924 = r2356921 * r2356923;
double r2356925 = r2356919 + r2356924;
double r2356926 = 21.0;
double r2356927 = r2356906 / r2356926;
double r2356928 = r2356923 * r2356912;
double r2356929 = r2356928 * r2356912;
double r2356930 = r2356927 * r2356929;
double r2356931 = r2356925 + r2356930;
double r2356932 = r2356909 * r2356931;
double r2356933 = fabs(r2356932);
return r2356933;
}
double f(double x) {
double r2356934 = x;
double r2356935 = fabs(r2356934);
double r2356936 = 7.0;
double r2356937 = pow(r2356935, r2356936);
double r2356938 = 0.047619047619047616;
double r2356939 = r2356937 * r2356938;
double r2356940 = 0.2;
double r2356941 = r2356935 * r2356935;
double r2356942 = r2356941 * r2356935;
double r2356943 = r2356942 * r2356935;
double r2356944 = r2356935 * r2356943;
double r2356945 = r2356940 * r2356944;
double r2356946 = 2.0;
double r2356947 = r2356935 * r2356946;
double r2356948 = 0.6666666666666666;
double r2356949 = r2356942 * r2356948;
double r2356950 = r2356947 + r2356949;
double r2356951 = r2356945 + r2356950;
double r2356952 = r2356939 + r2356951;
double r2356953 = 1.0;
double r2356954 = atan2(1.0, 0.0);
double r2356955 = sqrt(r2356954);
double r2356956 = r2356953 / r2356955;
double r2356957 = r2356952 * r2356956;
double r2356958 = fabs(r2356957);
return r2356958;
}



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