\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(1 \cdot \sqrt{\frac{1}{\pi}}\right) \cdot \mathsf{fma}\left(0.66666666666666663, {\left(\left|x\right|\right)}^{3}, \mathsf{fma}\left(0.20000000000000001, {\left(\left|x\right|\right)}^{5}, \mathsf{fma}\left(2, \left|x\right|, \sqrt{0.047619047619047616 \cdot {\left(\left|x\right|\right)}^{7}} \cdot \sqrt{0.047619047619047616 \cdot {\left(\left|x\right|\right)}^{7}}\right)\right)\right)\right|double f(double x) {
double r132497 = 1.0;
double r132498 = atan2(1.0, 0.0);
double r132499 = sqrt(r132498);
double r132500 = r132497 / r132499;
double r132501 = 2.0;
double r132502 = x;
double r132503 = fabs(r132502);
double r132504 = r132501 * r132503;
double r132505 = 3.0;
double r132506 = r132501 / r132505;
double r132507 = r132503 * r132503;
double r132508 = r132507 * r132503;
double r132509 = r132506 * r132508;
double r132510 = r132504 + r132509;
double r132511 = 5.0;
double r132512 = r132497 / r132511;
double r132513 = r132508 * r132503;
double r132514 = r132513 * r132503;
double r132515 = r132512 * r132514;
double r132516 = r132510 + r132515;
double r132517 = 21.0;
double r132518 = r132497 / r132517;
double r132519 = r132514 * r132503;
double r132520 = r132519 * r132503;
double r132521 = r132518 * r132520;
double r132522 = r132516 + r132521;
double r132523 = r132500 * r132522;
double r132524 = fabs(r132523);
return r132524;
}
double f(double x) {
double r132525 = 1.0;
double r132526 = 1.0;
double r132527 = atan2(1.0, 0.0);
double r132528 = r132526 / r132527;
double r132529 = sqrt(r132528);
double r132530 = r132525 * r132529;
double r132531 = 0.6666666666666666;
double r132532 = x;
double r132533 = fabs(r132532);
double r132534 = 3.0;
double r132535 = pow(r132533, r132534);
double r132536 = 0.2;
double r132537 = 5.0;
double r132538 = pow(r132533, r132537);
double r132539 = 2.0;
double r132540 = 0.047619047619047616;
double r132541 = 7.0;
double r132542 = pow(r132533, r132541);
double r132543 = r132540 * r132542;
double r132544 = sqrt(r132543);
double r132545 = r132544 * r132544;
double r132546 = fma(r132539, r132533, r132545);
double r132547 = fma(r132536, r132538, r132546);
double r132548 = fma(r132531, r132535, r132547);
double r132549 = r132530 * r132548;
double r132550 = fabs(r132549);
return r132550;
}



Bits error versus x
Initial program 0.2
rmApplied pow10.2
Applied pow10.2
Applied pow10.2
Applied pow-prod-down0.2
Applied pow-prod-down0.2
Simplified0.2
Taylor expanded around 0 0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Final simplification0.2
herbie shell --seed 2020027 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.erfi, branch x less than or equal to 0.5"
:precision binary64
(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)))))))