\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}, 0.20000000000000001 \cdot {\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|double f(double x) {
double r161445 = 1.0;
double r161446 = atan2(1.0, 0.0);
double r161447 = sqrt(r161446);
double r161448 = r161445 / r161447;
double r161449 = 2.0;
double r161450 = x;
double r161451 = fabs(r161450);
double r161452 = r161449 * r161451;
double r161453 = 3.0;
double r161454 = r161449 / r161453;
double r161455 = r161451 * r161451;
double r161456 = r161455 * r161451;
double r161457 = r161454 * r161456;
double r161458 = r161452 + r161457;
double r161459 = 5.0;
double r161460 = r161445 / r161459;
double r161461 = r161456 * r161451;
double r161462 = r161461 * r161451;
double r161463 = r161460 * r161462;
double r161464 = r161458 + r161463;
double r161465 = 21.0;
double r161466 = r161445 / r161465;
double r161467 = r161462 * r161451;
double r161468 = r161467 * r161451;
double r161469 = r161466 * r161468;
double r161470 = r161464 + r161469;
double r161471 = r161448 * r161470;
double r161472 = fabs(r161471);
return r161472;
}
double f(double x) {
double r161473 = 1.0;
double r161474 = 1.0;
double r161475 = atan2(1.0, 0.0);
double r161476 = r161474 / r161475;
double r161477 = sqrt(r161476);
double r161478 = r161473 * r161477;
double r161479 = 0.6666666666666666;
double r161480 = x;
double r161481 = fabs(r161480);
double r161482 = 3.0;
double r161483 = pow(r161481, r161482);
double r161484 = 0.2;
double r161485 = 5.0;
double r161486 = pow(r161481, r161485);
double r161487 = r161484 * r161486;
double r161488 = 2.0;
double r161489 = 0.047619047619047616;
double r161490 = 7.0;
double r161491 = pow(r161481, r161490);
double r161492 = r161489 * r161491;
double r161493 = fma(r161488, r161481, r161492);
double r161494 = r161487 + r161493;
double r161495 = fma(r161479, r161483, r161494);
double r161496 = r161478 * r161495;
double r161497 = fabs(r161496);
return r161497;
}



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