\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(\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{\left(\left|x\right| \cdot 1\right) \cdot {\left(\left|x\right|\right)}^{6}}{21}\right) \cdot \frac{1}{\sqrt{\pi}}\right|double f(double x) {
double r134046 = 1.0;
double r134047 = atan2(1.0, 0.0);
double r134048 = sqrt(r134047);
double r134049 = r134046 / r134048;
double r134050 = 2.0;
double r134051 = x;
double r134052 = fabs(r134051);
double r134053 = r134050 * r134052;
double r134054 = 3.0;
double r134055 = r134050 / r134054;
double r134056 = r134052 * r134052;
double r134057 = r134056 * r134052;
double r134058 = r134055 * r134057;
double r134059 = r134053 + r134058;
double r134060 = 5.0;
double r134061 = r134046 / r134060;
double r134062 = r134057 * r134052;
double r134063 = r134062 * r134052;
double r134064 = r134061 * r134063;
double r134065 = r134059 + r134064;
double r134066 = 21.0;
double r134067 = r134046 / r134066;
double r134068 = r134063 * r134052;
double r134069 = r134068 * r134052;
double r134070 = r134067 * r134069;
double r134071 = r134065 + r134070;
double r134072 = r134049 * r134071;
double r134073 = fabs(r134072);
return r134073;
}
double f(double x) {
double r134074 = 2.0;
double r134075 = x;
double r134076 = fabs(r134075);
double r134077 = r134074 * r134076;
double r134078 = 3.0;
double r134079 = r134074 / r134078;
double r134080 = r134076 * r134076;
double r134081 = r134080 * r134076;
double r134082 = r134079 * r134081;
double r134083 = r134077 + r134082;
double r134084 = 1.0;
double r134085 = 5.0;
double r134086 = r134084 / r134085;
double r134087 = r134081 * r134076;
double r134088 = r134087 * r134076;
double r134089 = r134086 * r134088;
double r134090 = r134083 + r134089;
double r134091 = r134076 * r134084;
double r134092 = 6.0;
double r134093 = pow(r134076, r134092);
double r134094 = r134091 * r134093;
double r134095 = 21.0;
double r134096 = r134094 / r134095;
double r134097 = r134090 + r134096;
double r134098 = atan2(1.0, 0.0);
double r134099 = sqrt(r134098);
double r134100 = r134084 / r134099;
double r134101 = r134097 * r134100;
double r134102 = fabs(r134101);
return r134102;
}



Bits error versus x
Results
Initial program 0.2
rmApplied associate-*l/0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019304
(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)))))))