\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.6666666666666666296592325124947819858789, {\left(\left|x\right|\right)}^{3}, \mathsf{fma}\left(0.2000000000000000111022302462515654042363, {\left(\left|x\right|\right)}^{5}, \mathsf{fma}\left(2, \left|x\right|, 0.04761904761904761640423089374962728470564 \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)\right|double f(double x) {
double r147633 = 1.0;
double r147634 = atan2(1.0, 0.0);
double r147635 = sqrt(r147634);
double r147636 = r147633 / r147635;
double r147637 = 2.0;
double r147638 = x;
double r147639 = fabs(r147638);
double r147640 = r147637 * r147639;
double r147641 = 3.0;
double r147642 = r147637 / r147641;
double r147643 = r147639 * r147639;
double r147644 = r147643 * r147639;
double r147645 = r147642 * r147644;
double r147646 = r147640 + r147645;
double r147647 = 5.0;
double r147648 = r147633 / r147647;
double r147649 = r147644 * r147639;
double r147650 = r147649 * r147639;
double r147651 = r147648 * r147650;
double r147652 = r147646 + r147651;
double r147653 = 21.0;
double r147654 = r147633 / r147653;
double r147655 = r147650 * r147639;
double r147656 = r147655 * r147639;
double r147657 = r147654 * r147656;
double r147658 = r147652 + r147657;
double r147659 = r147636 * r147658;
double r147660 = fabs(r147659);
return r147660;
}
double f(double x) {
double r147661 = 1.0;
double r147662 = 1.0;
double r147663 = atan2(1.0, 0.0);
double r147664 = r147662 / r147663;
double r147665 = sqrt(r147664);
double r147666 = r147661 * r147665;
double r147667 = 0.6666666666666666;
double r147668 = x;
double r147669 = fabs(r147668);
double r147670 = 3.0;
double r147671 = pow(r147669, r147670);
double r147672 = 0.2;
double r147673 = 5.0;
double r147674 = pow(r147669, r147673);
double r147675 = 2.0;
double r147676 = 0.047619047619047616;
double r147677 = 7.0;
double r147678 = pow(r147669, r147677);
double r147679 = r147676 * r147678;
double r147680 = fma(r147675, r147669, r147679);
double r147681 = fma(r147672, r147674, r147680);
double r147682 = fma(r147667, r147671, r147681);
double r147683 = r147666 * r147682;
double r147684 = fabs(r147683);
return r147684;
}



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