\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|\frac{1}{\sqrt{\pi}} \cdot \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) + \left(\left|x\right| \cdot \left(\left|x\right| \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)\right)\right) \cdot \frac{1}{21}\right)\right|double f(double x) {
double r3717870 = 1.0;
double r3717871 = atan2(1.0, 0.0);
double r3717872 = sqrt(r3717871);
double r3717873 = r3717870 / r3717872;
double r3717874 = 2.0;
double r3717875 = x;
double r3717876 = fabs(r3717875);
double r3717877 = r3717874 * r3717876;
double r3717878 = 3.0;
double r3717879 = r3717874 / r3717878;
double r3717880 = r3717876 * r3717876;
double r3717881 = r3717880 * r3717876;
double r3717882 = r3717879 * r3717881;
double r3717883 = r3717877 + r3717882;
double r3717884 = 5.0;
double r3717885 = r3717870 / r3717884;
double r3717886 = r3717881 * r3717876;
double r3717887 = r3717886 * r3717876;
double r3717888 = r3717885 * r3717887;
double r3717889 = r3717883 + r3717888;
double r3717890 = 21.0;
double r3717891 = r3717870 / r3717890;
double r3717892 = r3717887 * r3717876;
double r3717893 = r3717892 * r3717876;
double r3717894 = r3717891 * r3717893;
double r3717895 = r3717889 + r3717894;
double r3717896 = r3717873 * r3717895;
double r3717897 = fabs(r3717896);
return r3717897;
}
double f(double x) {
double r3717898 = 1.0;
double r3717899 = atan2(1.0, 0.0);
double r3717900 = sqrt(r3717899);
double r3717901 = r3717898 / r3717900;
double r3717902 = 0.2;
double r3717903 = x;
double r3717904 = fabs(r3717903);
double r3717905 = r3717904 * r3717904;
double r3717906 = r3717905 * r3717904;
double r3717907 = r3717906 * r3717904;
double r3717908 = r3717904 * r3717907;
double r3717909 = r3717902 * r3717908;
double r3717910 = 2.0;
double r3717911 = r3717904 * r3717910;
double r3717912 = 0.6666666666666666;
double r3717913 = r3717906 * r3717912;
double r3717914 = r3717911 + r3717913;
double r3717915 = r3717909 + r3717914;
double r3717916 = r3717904 * r3717908;
double r3717917 = r3717904 * r3717916;
double r3717918 = 0.047619047619047616;
double r3717919 = r3717917 * r3717918;
double r3717920 = r3717915 + r3717919;
double r3717921 = r3717901 * r3717920;
double r3717922 = fabs(r3717921);
return r3717922;
}



Bits error versus x
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2019139 +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)))))))