\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(\mathsf{fma}\left(\frac{1}{21}, \left({\left(\left|x\right|\right)}^{6} \cdot \left|x\right|\right) \cdot \frac{1}{\sqrt{\pi}}, \frac{1}{\sqrt{\pi}} \cdot \mathsf{fma}\left({\left(\left|x\right|\right)}^{5}, 0.20000000000000001, \mathsf{fma}\left(\left|x\right|, 2, {\left(\left|x\right|\right)}^{3} \cdot \frac{2}{3}\right)\right)\right)\right)}^{1}\right|double f(double x) {
double r128927 = 1.0;
double r128928 = atan2(1.0, 0.0);
double r128929 = sqrt(r128928);
double r128930 = r128927 / r128929;
double r128931 = 2.0;
double r128932 = x;
double r128933 = fabs(r128932);
double r128934 = r128931 * r128933;
double r128935 = 3.0;
double r128936 = r128931 / r128935;
double r128937 = r128933 * r128933;
double r128938 = r128937 * r128933;
double r128939 = r128936 * r128938;
double r128940 = r128934 + r128939;
double r128941 = 5.0;
double r128942 = r128927 / r128941;
double r128943 = r128938 * r128933;
double r128944 = r128943 * r128933;
double r128945 = r128942 * r128944;
double r128946 = r128940 + r128945;
double r128947 = 21.0;
double r128948 = r128927 / r128947;
double r128949 = r128944 * r128933;
double r128950 = r128949 * r128933;
double r128951 = r128948 * r128950;
double r128952 = r128946 + r128951;
double r128953 = r128930 * r128952;
double r128954 = fabs(r128953);
return r128954;
}
double f(double x) {
double r128955 = 1.0;
double r128956 = 21.0;
double r128957 = r128955 / r128956;
double r128958 = x;
double r128959 = fabs(r128958);
double r128960 = 6.0;
double r128961 = pow(r128959, r128960);
double r128962 = r128961 * r128959;
double r128963 = atan2(1.0, 0.0);
double r128964 = sqrt(r128963);
double r128965 = r128955 / r128964;
double r128966 = r128962 * r128965;
double r128967 = 5.0;
double r128968 = pow(r128959, r128967);
double r128969 = 0.2;
double r128970 = 2.0;
double r128971 = 3.0;
double r128972 = pow(r128959, r128971);
double r128973 = 3.0;
double r128974 = r128970 / r128973;
double r128975 = r128972 * r128974;
double r128976 = fma(r128959, r128970, r128975);
double r128977 = fma(r128968, r128969, r128976);
double r128978 = r128965 * r128977;
double r128979 = fma(r128957, r128966, r128978);
double r128980 = 1.0;
double r128981 = pow(r128979, r128980);
double r128982 = fabs(r128981);
return r128982;
}



Bits error versus x
Initial program 0.2
Taylor expanded around 0 0.2
rmApplied pow10.2
Applied pow10.2
Applied pow-prod-down0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020003 +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)))))))