\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(\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) + \frac{1}{21} \cdot \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left(\left|x\right| \cdot {\left(\left|x\right|\right)}^{3}\right) \cdot \left|x\right|\right)\right)\right)\right) \cdot \frac{1}{\sqrt{\pi}}\right|double f(double x) {
double r2584876 = 1.0;
double r2584877 = atan2(1.0, 0.0);
double r2584878 = sqrt(r2584877);
double r2584879 = r2584876 / r2584878;
double r2584880 = 2.0;
double r2584881 = x;
double r2584882 = fabs(r2584881);
double r2584883 = r2584880 * r2584882;
double r2584884 = 3.0;
double r2584885 = r2584880 / r2584884;
double r2584886 = r2584882 * r2584882;
double r2584887 = r2584886 * r2584882;
double r2584888 = r2584885 * r2584887;
double r2584889 = r2584883 + r2584888;
double r2584890 = 5.0;
double r2584891 = r2584876 / r2584890;
double r2584892 = r2584887 * r2584882;
double r2584893 = r2584892 * r2584882;
double r2584894 = r2584891 * r2584893;
double r2584895 = r2584889 + r2584894;
double r2584896 = 21.0;
double r2584897 = r2584876 / r2584896;
double r2584898 = r2584893 * r2584882;
double r2584899 = r2584898 * r2584882;
double r2584900 = r2584897 * r2584899;
double r2584901 = r2584895 + r2584900;
double r2584902 = r2584879 * r2584901;
double r2584903 = fabs(r2584902);
return r2584903;
}
double f(double x) {
double r2584904 = 0.2;
double r2584905 = x;
double r2584906 = fabs(r2584905);
double r2584907 = r2584906 * r2584906;
double r2584908 = r2584907 * r2584906;
double r2584909 = r2584908 * r2584906;
double r2584910 = r2584906 * r2584909;
double r2584911 = r2584904 * r2584910;
double r2584912 = 2.0;
double r2584913 = r2584906 * r2584912;
double r2584914 = 0.6666666666666666;
double r2584915 = r2584908 * r2584914;
double r2584916 = r2584913 + r2584915;
double r2584917 = r2584911 + r2584916;
double r2584918 = 0.047619047619047616;
double r2584919 = 3.0;
double r2584920 = pow(r2584906, r2584919);
double r2584921 = r2584906 * r2584920;
double r2584922 = r2584921 * r2584906;
double r2584923 = r2584906 * r2584922;
double r2584924 = r2584906 * r2584923;
double r2584925 = r2584918 * r2584924;
double r2584926 = r2584917 + r2584925;
double r2584927 = 1.0;
double r2584928 = atan2(1.0, 0.0);
double r2584929 = sqrt(r2584928);
double r2584930 = r2584927 / r2584929;
double r2584931 = r2584926 * r2584930;
double r2584932 = fabs(r2584931);
return r2584932;
}



Bits error versus x
Results
Initial program 0.2
rmApplied pow20.2
Applied pow-plus0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019149 +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)))))))