\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(\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{\left(1 \cdot \left|x\right|\right) \cdot {\left(\left|x\right|\right)}^{6}}{21}\right)\right|double f(double x) {
double r25848 = 1.0;
double r25849 = atan2(1.0, 0.0);
double r25850 = sqrt(r25849);
double r25851 = r25848 / r25850;
double r25852 = 2.0;
double r25853 = x;
double r25854 = fabs(r25853);
double r25855 = r25852 * r25854;
double r25856 = 3.0;
double r25857 = r25852 / r25856;
double r25858 = r25854 * r25854;
double r25859 = r25858 * r25854;
double r25860 = r25857 * r25859;
double r25861 = r25855 + r25860;
double r25862 = 5.0;
double r25863 = r25848 / r25862;
double r25864 = r25859 * r25854;
double r25865 = r25864 * r25854;
double r25866 = r25863 * r25865;
double r25867 = r25861 + r25866;
double r25868 = 21.0;
double r25869 = r25848 / r25868;
double r25870 = r25865 * r25854;
double r25871 = r25870 * r25854;
double r25872 = r25869 * r25871;
double r25873 = r25867 + r25872;
double r25874 = r25851 * r25873;
double r25875 = fabs(r25874);
return r25875;
}
double f(double x) {
double r25876 = 1.0;
double r25877 = atan2(1.0, 0.0);
double r25878 = sqrt(r25877);
double r25879 = r25876 / r25878;
double r25880 = 2.0;
double r25881 = x;
double r25882 = fabs(r25881);
double r25883 = r25880 * r25882;
double r25884 = 3.0;
double r25885 = r25880 / r25884;
double r25886 = r25882 * r25882;
double r25887 = r25886 * r25882;
double r25888 = r25885 * r25887;
double r25889 = r25883 + r25888;
double r25890 = 5.0;
double r25891 = r25876 / r25890;
double r25892 = r25887 * r25882;
double r25893 = r25892 * r25882;
double r25894 = r25891 * r25893;
double r25895 = r25889 + r25894;
double r25896 = r25876 * r25882;
double r25897 = 6.0;
double r25898 = pow(r25882, r25897);
double r25899 = r25896 * r25898;
double r25900 = 21.0;
double r25901 = r25899 / r25900;
double r25902 = r25895 + r25901;
double r25903 = r25879 * r25902;
double r25904 = fabs(r25903);
return r25904;
}



Bits error versus x
Results
Initial program 0.2
rmApplied associate-*l/0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020045
(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)))))))