\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{1}{21} \cdot \left(\left(\left(\left({\left(\left|x\right|\right)}^{3} \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right|double f(double x) {
double r199831 = 1.0;
double r199832 = atan2(1.0, 0.0);
double r199833 = sqrt(r199832);
double r199834 = r199831 / r199833;
double r199835 = 2.0;
double r199836 = x;
double r199837 = fabs(r199836);
double r199838 = r199835 * r199837;
double r199839 = 3.0;
double r199840 = r199835 / r199839;
double r199841 = r199837 * r199837;
double r199842 = r199841 * r199837;
double r199843 = r199840 * r199842;
double r199844 = r199838 + r199843;
double r199845 = 5.0;
double r199846 = r199831 / r199845;
double r199847 = r199842 * r199837;
double r199848 = r199847 * r199837;
double r199849 = r199846 * r199848;
double r199850 = r199844 + r199849;
double r199851 = 21.0;
double r199852 = r199831 / r199851;
double r199853 = r199848 * r199837;
double r199854 = r199853 * r199837;
double r199855 = r199852 * r199854;
double r199856 = r199850 + r199855;
double r199857 = r199834 * r199856;
double r199858 = fabs(r199857);
return r199858;
}
double f(double x) {
double r199859 = 1.0;
double r199860 = atan2(1.0, 0.0);
double r199861 = sqrt(r199860);
double r199862 = r199859 / r199861;
double r199863 = 2.0;
double r199864 = x;
double r199865 = fabs(r199864);
double r199866 = r199863 * r199865;
double r199867 = 3.0;
double r199868 = r199863 / r199867;
double r199869 = r199865 * r199865;
double r199870 = r199869 * r199865;
double r199871 = r199868 * r199870;
double r199872 = r199866 + r199871;
double r199873 = 5.0;
double r199874 = r199859 / r199873;
double r199875 = r199870 * r199865;
double r199876 = r199875 * r199865;
double r199877 = r199874 * r199876;
double r199878 = r199872 + r199877;
double r199879 = 21.0;
double r199880 = r199859 / r199879;
double r199881 = 3.0;
double r199882 = pow(r199865, r199881);
double r199883 = r199882 * r199865;
double r199884 = r199883 * r199865;
double r199885 = r199884 * r199865;
double r199886 = r199885 * r199865;
double r199887 = r199880 * r199886;
double r199888 = r199878 + r199887;
double r199889 = r199862 * r199888;
double r199890 = fabs(r199889);
return r199890;
}



Bits error versus x
Results
Initial program 0.2
rmApplied pow10.2
Applied pow10.2
Applied pow10.2
Applied pow-prod-up0.2
Applied pow-prod-up0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020056 +o rules:numerics
(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)))))))