\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|x\right|\right)}^{7} \cdot \frac{1}{21} + \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)\right) \cdot \frac{1}{\sqrt{\pi}}\right|double f(double x) {
double r6663180 = 1.0;
double r6663181 = atan2(1.0, 0.0);
double r6663182 = sqrt(r6663181);
double r6663183 = r6663180 / r6663182;
double r6663184 = 2.0;
double r6663185 = x;
double r6663186 = fabs(r6663185);
double r6663187 = r6663184 * r6663186;
double r6663188 = 3.0;
double r6663189 = r6663184 / r6663188;
double r6663190 = r6663186 * r6663186;
double r6663191 = r6663190 * r6663186;
double r6663192 = r6663189 * r6663191;
double r6663193 = r6663187 + r6663192;
double r6663194 = 5.0;
double r6663195 = r6663180 / r6663194;
double r6663196 = r6663191 * r6663186;
double r6663197 = r6663196 * r6663186;
double r6663198 = r6663195 * r6663197;
double r6663199 = r6663193 + r6663198;
double r6663200 = 21.0;
double r6663201 = r6663180 / r6663200;
double r6663202 = r6663197 * r6663186;
double r6663203 = r6663202 * r6663186;
double r6663204 = r6663201 * r6663203;
double r6663205 = r6663199 + r6663204;
double r6663206 = r6663183 * r6663205;
double r6663207 = fabs(r6663206);
return r6663207;
}
double f(double x) {
double r6663208 = x;
double r6663209 = fabs(r6663208);
double r6663210 = 7.0;
double r6663211 = pow(r6663209, r6663210);
double r6663212 = 0.047619047619047616;
double r6663213 = r6663211 * r6663212;
double r6663214 = 0.2;
double r6663215 = r6663209 * r6663209;
double r6663216 = r6663215 * r6663209;
double r6663217 = r6663216 * r6663209;
double r6663218 = r6663209 * r6663217;
double r6663219 = r6663214 * r6663218;
double r6663220 = 2.0;
double r6663221 = r6663209 * r6663220;
double r6663222 = 0.6666666666666666;
double r6663223 = r6663216 * r6663222;
double r6663224 = r6663221 + r6663223;
double r6663225 = r6663219 + r6663224;
double r6663226 = r6663213 + r6663225;
double r6663227 = 1.0;
double r6663228 = atan2(1.0, 0.0);
double r6663229 = sqrt(r6663228);
double r6663230 = r6663227 / r6663229;
double r6663231 = r6663226 * r6663230;
double r6663232 = fabs(r6663231);
return r6663232;
}



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