\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|1 \cdot \left(\sqrt{\frac{1}{\pi}} \cdot \left(0.66666666666666663 \cdot {\left(\left|x\right|\right)}^{3} + \left(0.20000000000000001 \cdot {\left(\left|x\right|\right)}^{5} + \left(2 \cdot \left|x\right| + 0.047619047619047616 \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)\right)\right|double f(double x) {
double r273922 = 1.0;
double r273923 = atan2(1.0, 0.0);
double r273924 = sqrt(r273923);
double r273925 = r273922 / r273924;
double r273926 = 2.0;
double r273927 = x;
double r273928 = fabs(r273927);
double r273929 = r273926 * r273928;
double r273930 = 3.0;
double r273931 = r273926 / r273930;
double r273932 = r273928 * r273928;
double r273933 = r273932 * r273928;
double r273934 = r273931 * r273933;
double r273935 = r273929 + r273934;
double r273936 = 5.0;
double r273937 = r273922 / r273936;
double r273938 = r273933 * r273928;
double r273939 = r273938 * r273928;
double r273940 = r273937 * r273939;
double r273941 = r273935 + r273940;
double r273942 = 21.0;
double r273943 = r273922 / r273942;
double r273944 = r273939 * r273928;
double r273945 = r273944 * r273928;
double r273946 = r273943 * r273945;
double r273947 = r273941 + r273946;
double r273948 = r273925 * r273947;
double r273949 = fabs(r273948);
return r273949;
}
double f(double x) {
double r273950 = 1.0;
double r273951 = 1.0;
double r273952 = atan2(1.0, 0.0);
double r273953 = r273951 / r273952;
double r273954 = sqrt(r273953);
double r273955 = 0.6666666666666666;
double r273956 = x;
double r273957 = fabs(r273956);
double r273958 = 3.0;
double r273959 = pow(r273957, r273958);
double r273960 = r273955 * r273959;
double r273961 = 0.2;
double r273962 = 5.0;
double r273963 = pow(r273957, r273962);
double r273964 = r273961 * r273963;
double r273965 = 2.0;
double r273966 = r273965 * r273957;
double r273967 = 0.047619047619047616;
double r273968 = 7.0;
double r273969 = pow(r273957, r273968);
double r273970 = r273967 * r273969;
double r273971 = r273966 + r273970;
double r273972 = r273964 + r273971;
double r273973 = r273960 + r273972;
double r273974 = r273954 * r273973;
double r273975 = r273950 * r273974;
double r273976 = fabs(r273975);
return r273976;
}



Bits error versus x
Results
Initial program 0.2
Taylor expanded around 0 0.2
Final simplification0.2
herbie shell --seed 2020059
(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)))))))