\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(\frac{1}{21} \cdot {\left(\left|x\right|\right)}^{7} + \left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{5} + \left(\left(\frac{2}{3} \cdot \left|x\right|\right) \cdot \left|x\right| + 2\right) \cdot \left|x\right|\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|double f(double x) {
double r13738607 = 1.0;
double r13738608 = atan2(1.0, 0.0);
double r13738609 = sqrt(r13738608);
double r13738610 = r13738607 / r13738609;
double r13738611 = 2.0;
double r13738612 = x;
double r13738613 = fabs(r13738612);
double r13738614 = r13738611 * r13738613;
double r13738615 = 3.0;
double r13738616 = r13738611 / r13738615;
double r13738617 = r13738613 * r13738613;
double r13738618 = r13738617 * r13738613;
double r13738619 = r13738616 * r13738618;
double r13738620 = r13738614 + r13738619;
double r13738621 = 5.0;
double r13738622 = r13738607 / r13738621;
double r13738623 = r13738618 * r13738613;
double r13738624 = r13738623 * r13738613;
double r13738625 = r13738622 * r13738624;
double r13738626 = r13738620 + r13738625;
double r13738627 = 21.0;
double r13738628 = r13738607 / r13738627;
double r13738629 = r13738624 * r13738613;
double r13738630 = r13738629 * r13738613;
double r13738631 = r13738628 * r13738630;
double r13738632 = r13738626 + r13738631;
double r13738633 = r13738610 * r13738632;
double r13738634 = fabs(r13738633);
return r13738634;
}
double f(double x) {
double r13738635 = 0.047619047619047616;
double r13738636 = x;
double r13738637 = fabs(r13738636);
double r13738638 = 7.0;
double r13738639 = pow(r13738637, r13738638);
double r13738640 = r13738635 * r13738639;
double r13738641 = 0.2;
double r13738642 = 5.0;
double r13738643 = pow(r13738637, r13738642);
double r13738644 = r13738641 * r13738643;
double r13738645 = 0.6666666666666666;
double r13738646 = r13738645 * r13738637;
double r13738647 = r13738646 * r13738637;
double r13738648 = 2.0;
double r13738649 = r13738647 + r13738648;
double r13738650 = r13738649 * r13738637;
double r13738651 = r13738644 + r13738650;
double r13738652 = r13738640 + r13738651;
double r13738653 = 1.0;
double r13738654 = atan2(1.0, 0.0);
double r13738655 = r13738653 / r13738654;
double r13738656 = sqrt(r13738655);
double r13738657 = r13738652 * r13738656;
double r13738658 = fabs(r13738657);
return r13738658;
}



Bits error versus x
Results
Initial program 0.2
Taylor expanded around -inf 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019125
(FPCore (x)
:name "Jmat.Real.erfi, branch x less than or equal to 0.5"
(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)))))))