\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 r5197446 = 1.0;
double r5197447 = atan2(1.0, 0.0);
double r5197448 = sqrt(r5197447);
double r5197449 = r5197446 / r5197448;
double r5197450 = 2.0;
double r5197451 = x;
double r5197452 = fabs(r5197451);
double r5197453 = r5197450 * r5197452;
double r5197454 = 3.0;
double r5197455 = r5197450 / r5197454;
double r5197456 = r5197452 * r5197452;
double r5197457 = r5197456 * r5197452;
double r5197458 = r5197455 * r5197457;
double r5197459 = r5197453 + r5197458;
double r5197460 = 5.0;
double r5197461 = r5197446 / r5197460;
double r5197462 = r5197457 * r5197452;
double r5197463 = r5197462 * r5197452;
double r5197464 = r5197461 * r5197463;
double r5197465 = r5197459 + r5197464;
double r5197466 = 21.0;
double r5197467 = r5197446 / r5197466;
double r5197468 = r5197463 * r5197452;
double r5197469 = r5197468 * r5197452;
double r5197470 = r5197467 * r5197469;
double r5197471 = r5197465 + r5197470;
double r5197472 = r5197449 * r5197471;
double r5197473 = fabs(r5197472);
return r5197473;
}
double f(double x) {
double r5197474 = 1.0;
double r5197475 = atan2(1.0, 0.0);
double r5197476 = sqrt(r5197475);
double r5197477 = r5197474 / r5197476;
double r5197478 = 5.0;
double r5197479 = r5197474 / r5197478;
double r5197480 = x;
double r5197481 = fabs(r5197480);
double r5197482 = r5197481 * r5197481;
double r5197483 = r5197482 * r5197481;
double r5197484 = r5197483 * r5197481;
double r5197485 = r5197481 * r5197484;
double r5197486 = r5197479 * r5197485;
double r5197487 = 2.0;
double r5197488 = r5197481 * r5197487;
double r5197489 = 3.0;
double r5197490 = r5197487 / r5197489;
double r5197491 = r5197483 * r5197490;
double r5197492 = r5197488 + r5197491;
double r5197493 = r5197486 + r5197492;
double r5197494 = 3.0;
double r5197495 = pow(r5197481, r5197494);
double r5197496 = r5197495 * r5197481;
double r5197497 = r5197481 * r5197496;
double r5197498 = r5197481 * r5197497;
double r5197499 = r5197481 * r5197498;
double r5197500 = 21.0;
double r5197501 = r5197474 / r5197500;
double r5197502 = r5197499 * r5197501;
double r5197503 = r5197493 + r5197502;
double r5197504 = r5197477 * r5197503;
double r5197505 = fabs(r5197504);
return r5197505;
}



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 2019172 +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)))))))