\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(\frac{1}{5} \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \left(\left|x\right| \cdot 2 + \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \frac{2}{3}\right)\right) + \frac{1}{21} \cdot \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left(\left|x\right| \cdot {\left(\left|x\right|\right)}^{3}\right) \cdot \left|x\right|\right)\right)\right)\right) \cdot \frac{1}{\sqrt{\pi}}\right|double f(double x) {
double r2277024 = 1.0;
double r2277025 = atan2(1.0, 0.0);
double r2277026 = sqrt(r2277025);
double r2277027 = r2277024 / r2277026;
double r2277028 = 2.0;
double r2277029 = x;
double r2277030 = fabs(r2277029);
double r2277031 = r2277028 * r2277030;
double r2277032 = 3.0;
double r2277033 = r2277028 / r2277032;
double r2277034 = r2277030 * r2277030;
double r2277035 = r2277034 * r2277030;
double r2277036 = r2277033 * r2277035;
double r2277037 = r2277031 + r2277036;
double r2277038 = 5.0;
double r2277039 = r2277024 / r2277038;
double r2277040 = r2277035 * r2277030;
double r2277041 = r2277040 * r2277030;
double r2277042 = r2277039 * r2277041;
double r2277043 = r2277037 + r2277042;
double r2277044 = 21.0;
double r2277045 = r2277024 / r2277044;
double r2277046 = r2277041 * r2277030;
double r2277047 = r2277046 * r2277030;
double r2277048 = r2277045 * r2277047;
double r2277049 = r2277043 + r2277048;
double r2277050 = r2277027 * r2277049;
double r2277051 = fabs(r2277050);
return r2277051;
}
double f(double x) {
double r2277052 = 0.2;
double r2277053 = x;
double r2277054 = fabs(r2277053);
double r2277055 = r2277054 * r2277054;
double r2277056 = r2277055 * r2277054;
double r2277057 = r2277056 * r2277054;
double r2277058 = r2277054 * r2277057;
double r2277059 = r2277052 * r2277058;
double r2277060 = 2.0;
double r2277061 = r2277054 * r2277060;
double r2277062 = 0.6666666666666666;
double r2277063 = r2277056 * r2277062;
double r2277064 = r2277061 + r2277063;
double r2277065 = r2277059 + r2277064;
double r2277066 = 0.047619047619047616;
double r2277067 = 3.0;
double r2277068 = pow(r2277054, r2277067);
double r2277069 = r2277054 * r2277068;
double r2277070 = r2277069 * r2277054;
double r2277071 = r2277054 * r2277070;
double r2277072 = r2277054 * r2277071;
double r2277073 = r2277066 * r2277072;
double r2277074 = r2277065 + r2277073;
double r2277075 = 1.0;
double r2277076 = atan2(1.0, 0.0);
double r2277077 = sqrt(r2277076);
double r2277078 = r2277075 / r2277077;
double r2277079 = r2277074 * r2277078;
double r2277080 = fabs(r2277079);
return r2277080;
}



Bits error versus x
Results
Initial program 0.2
rmApplied pow10.2
Applied pow10.2
Applied pow-sqr0.2
Applied pow-plus0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019137
(FPCore (x)
:name "Jmat.Real.erfi, branch x less than or equal to 0.5"
(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)))))))