\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 r4895808 = 1.0;
double r4895809 = atan2(1.0, 0.0);
double r4895810 = sqrt(r4895809);
double r4895811 = r4895808 / r4895810;
double r4895812 = 2.0;
double r4895813 = x;
double r4895814 = fabs(r4895813);
double r4895815 = r4895812 * r4895814;
double r4895816 = 3.0;
double r4895817 = r4895812 / r4895816;
double r4895818 = r4895814 * r4895814;
double r4895819 = r4895818 * r4895814;
double r4895820 = r4895817 * r4895819;
double r4895821 = r4895815 + r4895820;
double r4895822 = 5.0;
double r4895823 = r4895808 / r4895822;
double r4895824 = r4895819 * r4895814;
double r4895825 = r4895824 * r4895814;
double r4895826 = r4895823 * r4895825;
double r4895827 = r4895821 + r4895826;
double r4895828 = 21.0;
double r4895829 = r4895808 / r4895828;
double r4895830 = r4895825 * r4895814;
double r4895831 = r4895830 * r4895814;
double r4895832 = r4895829 * r4895831;
double r4895833 = r4895827 + r4895832;
double r4895834 = r4895811 * r4895833;
double r4895835 = fabs(r4895834);
return r4895835;
}
double f(double x) {
double r4895836 = 0.2;
double r4895837 = x;
double r4895838 = fabs(r4895837);
double r4895839 = r4895838 * r4895838;
double r4895840 = r4895839 * r4895838;
double r4895841 = r4895840 * r4895838;
double r4895842 = r4895838 * r4895841;
double r4895843 = r4895836 * r4895842;
double r4895844 = 2.0;
double r4895845 = r4895838 * r4895844;
double r4895846 = 0.6666666666666666;
double r4895847 = r4895840 * r4895846;
double r4895848 = r4895845 + r4895847;
double r4895849 = r4895843 + r4895848;
double r4895850 = 0.047619047619047616;
double r4895851 = 3.0;
double r4895852 = pow(r4895838, r4895851);
double r4895853 = r4895838 * r4895852;
double r4895854 = r4895853 * r4895838;
double r4895855 = r4895838 * r4895854;
double r4895856 = r4895838 * r4895855;
double r4895857 = r4895850 * r4895856;
double r4895858 = r4895849 + r4895857;
double r4895859 = 1.0;
double r4895860 = atan2(1.0, 0.0);
double r4895861 = sqrt(r4895860);
double r4895862 = r4895859 / r4895861;
double r4895863 = r4895858 * r4895862;
double r4895864 = fabs(r4895863);
return r4895864;
}



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 2019168 +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)))))))