\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|, 0.047619047619047616 \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)\right|double f(double x) {
double r149461 = 1.0;
double r149462 = atan2(1.0, 0.0);
double r149463 = sqrt(r149462);
double r149464 = r149461 / r149463;
double r149465 = 2.0;
double r149466 = x;
double r149467 = fabs(r149466);
double r149468 = r149465 * r149467;
double r149469 = 3.0;
double r149470 = r149465 / r149469;
double r149471 = r149467 * r149467;
double r149472 = r149471 * r149467;
double r149473 = r149470 * r149472;
double r149474 = r149468 + r149473;
double r149475 = 5.0;
double r149476 = r149461 / r149475;
double r149477 = r149472 * r149467;
double r149478 = r149477 * r149467;
double r149479 = r149476 * r149478;
double r149480 = r149474 + r149479;
double r149481 = 21.0;
double r149482 = r149461 / r149481;
double r149483 = r149478 * r149467;
double r149484 = r149483 * r149467;
double r149485 = r149482 * r149484;
double r149486 = r149480 + r149485;
double r149487 = r149464 * r149486;
double r149488 = fabs(r149487);
return r149488;
}
double f(double x) {
double r149489 = 1.0;
double r149490 = 1.0;
double r149491 = atan2(1.0, 0.0);
double r149492 = r149490 / r149491;
double r149493 = sqrt(r149492);
double r149494 = r149489 * r149493;
double r149495 = 0.6666666666666666;
double r149496 = x;
double r149497 = fabs(r149496);
double r149498 = 3.0;
double r149499 = pow(r149497, r149498);
double r149500 = 0.2;
double r149501 = 5.0;
double r149502 = pow(r149497, r149501);
double r149503 = 2.0;
double r149504 = 0.047619047619047616;
double r149505 = 7.0;
double r149506 = pow(r149497, r149505);
double r149507 = r149504 * r149506;
double r149508 = fma(r149503, r149497, r149507);
double r149509 = fma(r149500, r149502, r149508);
double r149510 = fma(r149495, r149499, r149509);
double r149511 = r149494 * r149510;
double r149512 = fabs(r149511);
return r149512;
}



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