\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(\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|double f(double x) {
double r119946 = 1.0;
double r119947 = atan2(1.0, 0.0);
double r119948 = sqrt(r119947);
double r119949 = r119946 / r119948;
double r119950 = 2.0;
double r119951 = x;
double r119952 = fabs(r119951);
double r119953 = r119950 * r119952;
double r119954 = 3.0;
double r119955 = r119950 / r119954;
double r119956 = r119952 * r119952;
double r119957 = r119956 * r119952;
double r119958 = r119955 * r119957;
double r119959 = r119953 + r119958;
double r119960 = 5.0;
double r119961 = r119946 / r119960;
double r119962 = r119957 * r119952;
double r119963 = r119962 * r119952;
double r119964 = r119961 * r119963;
double r119965 = r119959 + r119964;
double r119966 = 21.0;
double r119967 = r119946 / r119966;
double r119968 = r119963 * r119952;
double r119969 = r119968 * r119952;
double r119970 = r119967 * r119969;
double r119971 = r119965 + r119970;
double r119972 = r119949 * r119971;
double r119973 = fabs(r119972);
return r119973;
}
double f(double x) {
double r119974 = 1.0;
double r119975 = atan2(1.0, 0.0);
double r119976 = sqrt(r119975);
double r119977 = r119974 / r119976;
double r119978 = 2.0;
double r119979 = x;
double r119980 = fabs(r119979);
double r119981 = r119978 * r119980;
double r119982 = 3.0;
double r119983 = r119978 / r119982;
double r119984 = r119980 * r119980;
double r119985 = r119984 * r119980;
double r119986 = r119983 * r119985;
double r119987 = r119981 + r119986;
double r119988 = 5.0;
double r119989 = r119974 / r119988;
double r119990 = r119985 * r119980;
double r119991 = r119990 * r119980;
double r119992 = r119989 * r119991;
double r119993 = r119987 + r119992;
double r119994 = 21.0;
double r119995 = r119974 / r119994;
double r119996 = r119991 * r119980;
double r119997 = r119996 * r119980;
double r119998 = r119995 * r119997;
double r119999 = r119993 + r119998;
double r120000 = r119977 * r119999;
double r120001 = fabs(r120000);
return r120001;
}



Bits error versus x
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2020047 +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)))))))