\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(\sqrt{\frac{1}{\pi}} \cdot \left(\left(0.6666666666666666296592325124947819858789 \cdot {\left(\left|x\right|\right)}^{3} + \left(0.2000000000000000111022302462515654042363 \cdot {\left(\left|x\right|\right)}^{5} + 2 \cdot \left|x\right|\right)\right) + \frac{1 \cdot {\left(\left|x\right|\right)}^{7}}{21}\right)\right) \cdot 1\right|double f(double x) {
double r124585 = 1.0;
double r124586 = atan2(1.0, 0.0);
double r124587 = sqrt(r124586);
double r124588 = r124585 / r124587;
double r124589 = 2.0;
double r124590 = x;
double r124591 = fabs(r124590);
double r124592 = r124589 * r124591;
double r124593 = 3.0;
double r124594 = r124589 / r124593;
double r124595 = r124591 * r124591;
double r124596 = r124595 * r124591;
double r124597 = r124594 * r124596;
double r124598 = r124592 + r124597;
double r124599 = 5.0;
double r124600 = r124585 / r124599;
double r124601 = r124596 * r124591;
double r124602 = r124601 * r124591;
double r124603 = r124600 * r124602;
double r124604 = r124598 + r124603;
double r124605 = 21.0;
double r124606 = r124585 / r124605;
double r124607 = r124602 * r124591;
double r124608 = r124607 * r124591;
double r124609 = r124606 * r124608;
double r124610 = r124604 + r124609;
double r124611 = r124588 * r124610;
double r124612 = fabs(r124611);
return r124612;
}
double f(double x) {
double r124613 = 1.0;
double r124614 = atan2(1.0, 0.0);
double r124615 = r124613 / r124614;
double r124616 = sqrt(r124615);
double r124617 = 0.6666666666666666;
double r124618 = x;
double r124619 = fabs(r124618);
double r124620 = 3.0;
double r124621 = pow(r124619, r124620);
double r124622 = r124617 * r124621;
double r124623 = 0.2;
double r124624 = 5.0;
double r124625 = pow(r124619, r124624);
double r124626 = r124623 * r124625;
double r124627 = 2.0;
double r124628 = r124627 * r124619;
double r124629 = r124626 + r124628;
double r124630 = r124622 + r124629;
double r124631 = 1.0;
double r124632 = 7.0;
double r124633 = pow(r124619, r124632);
double r124634 = r124631 * r124633;
double r124635 = 21.0;
double r124636 = r124634 / r124635;
double r124637 = r124630 + r124636;
double r124638 = r124616 * r124637;
double r124639 = r124638 * r124631;
double r124640 = fabs(r124639);
return r124640;
}



Bits error versus x
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Applied *-un-lft-identity0.2
Applied times-frac0.2
Applied associate-*l*0.2
Simplified0.2
Taylor expanded around 0 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019353
(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)))))))