\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(\sqrt{\frac{1}{21}} \cdot \left({\left(\left|x\right|\right)}^{6} \cdot \left(\left|x\right| \cdot \frac{\sqrt{1}}{\sqrt{21}}\right)\right) + \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)\right) \cdot \frac{1}{\sqrt{\pi}}\right|double f(double x) {
double r87042 = 1.0;
double r87043 = atan2(1.0, 0.0);
double r87044 = sqrt(r87043);
double r87045 = r87042 / r87044;
double r87046 = 2.0;
double r87047 = x;
double r87048 = fabs(r87047);
double r87049 = r87046 * r87048;
double r87050 = 3.0;
double r87051 = r87046 / r87050;
double r87052 = r87048 * r87048;
double r87053 = r87052 * r87048;
double r87054 = r87051 * r87053;
double r87055 = r87049 + r87054;
double r87056 = 5.0;
double r87057 = r87042 / r87056;
double r87058 = r87053 * r87048;
double r87059 = r87058 * r87048;
double r87060 = r87057 * r87059;
double r87061 = r87055 + r87060;
double r87062 = 21.0;
double r87063 = r87042 / r87062;
double r87064 = r87059 * r87048;
double r87065 = r87064 * r87048;
double r87066 = r87063 * r87065;
double r87067 = r87061 + r87066;
double r87068 = r87045 * r87067;
double r87069 = fabs(r87068);
return r87069;
}
double f(double x) {
double r87070 = 1.0;
double r87071 = 21.0;
double r87072 = r87070 / r87071;
double r87073 = sqrt(r87072);
double r87074 = x;
double r87075 = fabs(r87074);
double r87076 = 6.0;
double r87077 = pow(r87075, r87076);
double r87078 = sqrt(r87070);
double r87079 = sqrt(r87071);
double r87080 = r87078 / r87079;
double r87081 = r87075 * r87080;
double r87082 = r87077 * r87081;
double r87083 = r87073 * r87082;
double r87084 = 2.0;
double r87085 = r87084 * r87075;
double r87086 = 3.0;
double r87087 = r87084 / r87086;
double r87088 = r87075 * r87075;
double r87089 = r87088 * r87075;
double r87090 = r87087 * r87089;
double r87091 = r87085 + r87090;
double r87092 = 5.0;
double r87093 = r87070 / r87092;
double r87094 = r87089 * r87075;
double r87095 = r87094 * r87075;
double r87096 = r87093 * r87095;
double r87097 = r87091 + r87096;
double r87098 = r87083 + r87097;
double r87099 = atan2(1.0, 0.0);
double r87100 = sqrt(r87099);
double r87101 = r87070 / r87100;
double r87102 = r87098 * r87101;
double r87103 = fabs(r87102);
return r87103;
}



Bits error versus x
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.3
Applied associate-*l*0.3
Simplified0.2
rmApplied sqrt-div0.2
Final simplification0.2
herbie shell --seed 2019235 +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)))))))