\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 r3975368 = 1.0;
double r3975369 = atan2(1.0, 0.0);
double r3975370 = sqrt(r3975369);
double r3975371 = r3975368 / r3975370;
double r3975372 = 2.0;
double r3975373 = x;
double r3975374 = fabs(r3975373);
double r3975375 = r3975372 * r3975374;
double r3975376 = 3.0;
double r3975377 = r3975372 / r3975376;
double r3975378 = r3975374 * r3975374;
double r3975379 = r3975378 * r3975374;
double r3975380 = r3975377 * r3975379;
double r3975381 = r3975375 + r3975380;
double r3975382 = 5.0;
double r3975383 = r3975368 / r3975382;
double r3975384 = r3975379 * r3975374;
double r3975385 = r3975384 * r3975374;
double r3975386 = r3975383 * r3975385;
double r3975387 = r3975381 + r3975386;
double r3975388 = 21.0;
double r3975389 = r3975368 / r3975388;
double r3975390 = r3975385 * r3975374;
double r3975391 = r3975390 * r3975374;
double r3975392 = r3975389 * r3975391;
double r3975393 = r3975387 + r3975392;
double r3975394 = r3975371 * r3975393;
double r3975395 = fabs(r3975394);
return r3975395;
}
double f(double x) {
double r3975396 = x;
double r3975397 = fabs(r3975396);
double r3975398 = 7.0;
double r3975399 = pow(r3975397, r3975398);
double r3975400 = 0.047619047619047616;
double r3975401 = r3975399 * r3975400;
double r3975402 = 0.2;
double r3975403 = r3975397 * r3975397;
double r3975404 = r3975403 * r3975397;
double r3975405 = r3975404 * r3975397;
double r3975406 = r3975397 * r3975405;
double r3975407 = r3975402 * r3975406;
double r3975408 = 2.0;
double r3975409 = r3975397 * r3975408;
double r3975410 = 0.6666666666666666;
double r3975411 = r3975404 * r3975410;
double r3975412 = r3975409 + r3975411;
double r3975413 = r3975407 + r3975412;
double r3975414 = r3975401 + r3975413;
double r3975415 = 1.0;
double r3975416 = atan2(1.0, 0.0);
double r3975417 = sqrt(r3975416);
double r3975418 = r3975415 / r3975417;
double r3975419 = r3975414 * r3975418;
double r3975420 = fabs(r3975419);
return r3975420;
}



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