\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({\left(\left|x\right|\right)}^{5} \cdot \frac{1}{5} + \left(\left|x\right| \cdot \left(\frac{2}{3} \cdot \left|x\right|\right) + 2\right) \cdot \left|x\right|\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|double f(double x) {
double r5962677 = 1.0;
double r5962678 = atan2(1.0, 0.0);
double r5962679 = sqrt(r5962678);
double r5962680 = r5962677 / r5962679;
double r5962681 = 2.0;
double r5962682 = x;
double r5962683 = fabs(r5962682);
double r5962684 = r5962681 * r5962683;
double r5962685 = 3.0;
double r5962686 = r5962681 / r5962685;
double r5962687 = r5962683 * r5962683;
double r5962688 = r5962687 * r5962683;
double r5962689 = r5962686 * r5962688;
double r5962690 = r5962684 + r5962689;
double r5962691 = 5.0;
double r5962692 = r5962677 / r5962691;
double r5962693 = r5962688 * r5962683;
double r5962694 = r5962693 * r5962683;
double r5962695 = r5962692 * r5962694;
double r5962696 = r5962690 + r5962695;
double r5962697 = 21.0;
double r5962698 = r5962677 / r5962697;
double r5962699 = r5962694 * r5962683;
double r5962700 = r5962699 * r5962683;
double r5962701 = r5962698 * r5962700;
double r5962702 = r5962696 + r5962701;
double r5962703 = r5962680 * r5962702;
double r5962704 = fabs(r5962703);
return r5962704;
}
double f(double x) {
double r5962705 = 0.047619047619047616;
double r5962706 = x;
double r5962707 = fabs(r5962706);
double r5962708 = 7.0;
double r5962709 = pow(r5962707, r5962708);
double r5962710 = r5962705 * r5962709;
double r5962711 = 5.0;
double r5962712 = pow(r5962707, r5962711);
double r5962713 = 0.2;
double r5962714 = r5962712 * r5962713;
double r5962715 = 0.6666666666666666;
double r5962716 = r5962715 * r5962707;
double r5962717 = r5962707 * r5962716;
double r5962718 = 2.0;
double r5962719 = r5962717 + r5962718;
double r5962720 = r5962719 * r5962707;
double r5962721 = r5962714 + r5962720;
double r5962722 = r5962710 + r5962721;
double r5962723 = 1.0;
double r5962724 = atan2(1.0, 0.0);
double r5962725 = r5962723 / r5962724;
double r5962726 = sqrt(r5962725);
double r5962727 = r5962722 * r5962726;
double r5962728 = fabs(r5962727);
return r5962728;
}



Bits error versus x
Results
Initial program 0.2
Taylor expanded around -inf 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019139
(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)))))))