\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|\frac{1}{\sqrt{\pi}} \cdot \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) + \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left({\left(\left|x\right|\right)}^{3} \cdot \left|x\right|\right)\right)\right)\right) \cdot \frac{1}{21}\right)\right|double f(double x) {
double r4775334 = 1.0;
double r4775335 = atan2(1.0, 0.0);
double r4775336 = sqrt(r4775335);
double r4775337 = r4775334 / r4775336;
double r4775338 = 2.0;
double r4775339 = x;
double r4775340 = fabs(r4775339);
double r4775341 = r4775338 * r4775340;
double r4775342 = 3.0;
double r4775343 = r4775338 / r4775342;
double r4775344 = r4775340 * r4775340;
double r4775345 = r4775344 * r4775340;
double r4775346 = r4775343 * r4775345;
double r4775347 = r4775341 + r4775346;
double r4775348 = 5.0;
double r4775349 = r4775334 / r4775348;
double r4775350 = r4775345 * r4775340;
double r4775351 = r4775350 * r4775340;
double r4775352 = r4775349 * r4775351;
double r4775353 = r4775347 + r4775352;
double r4775354 = 21.0;
double r4775355 = r4775334 / r4775354;
double r4775356 = r4775351 * r4775340;
double r4775357 = r4775356 * r4775340;
double r4775358 = r4775355 * r4775357;
double r4775359 = r4775353 + r4775358;
double r4775360 = r4775337 * r4775359;
double r4775361 = fabs(r4775360);
return r4775361;
}
double f(double x) {
double r4775362 = 1.0;
double r4775363 = atan2(1.0, 0.0);
double r4775364 = sqrt(r4775363);
double r4775365 = r4775362 / r4775364;
double r4775366 = 5.0;
double r4775367 = r4775362 / r4775366;
double r4775368 = x;
double r4775369 = fabs(r4775368);
double r4775370 = r4775369 * r4775369;
double r4775371 = r4775370 * r4775369;
double r4775372 = r4775371 * r4775369;
double r4775373 = r4775369 * r4775372;
double r4775374 = r4775367 * r4775373;
double r4775375 = 2.0;
double r4775376 = r4775369 * r4775375;
double r4775377 = 3.0;
double r4775378 = r4775375 / r4775377;
double r4775379 = r4775371 * r4775378;
double r4775380 = r4775376 + r4775379;
double r4775381 = r4775374 + r4775380;
double r4775382 = 3.0;
double r4775383 = pow(r4775369, r4775382);
double r4775384 = r4775383 * r4775369;
double r4775385 = r4775369 * r4775384;
double r4775386 = r4775369 * r4775385;
double r4775387 = r4775369 * r4775386;
double r4775388 = 21.0;
double r4775389 = r4775362 / r4775388;
double r4775390 = r4775387 * r4775389;
double r4775391 = r4775381 + r4775390;
double r4775392 = r4775365 * r4775391;
double r4775393 = fabs(r4775392);
return r4775393;
}



Bits error versus x
Results
Initial program 0.2
rmApplied pow10.2
Applied pow10.2
Applied pow10.2
Applied pow-prod-up0.2
Applied pow-prod-up0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019179 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.erfi, branch x less than or equal to 0.5"
(fabs (* (/ 1.0 (sqrt PI)) (+ (+ (+ (* 2.0 (fabs x)) (* (/ 2.0 3.0) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1.0 5.0) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1.0 21.0) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))))