\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|\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{\left(1 \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|}{21}\right)\right|double f(double x) {
double r154686 = 1.0;
double r154687 = atan2(1.0, 0.0);
double r154688 = sqrt(r154687);
double r154689 = r154686 / r154688;
double r154690 = 2.0;
double r154691 = x;
double r154692 = fabs(r154691);
double r154693 = r154690 * r154692;
double r154694 = 3.0;
double r154695 = r154690 / r154694;
double r154696 = r154692 * r154692;
double r154697 = r154696 * r154692;
double r154698 = r154695 * r154697;
double r154699 = r154693 + r154698;
double r154700 = 5.0;
double r154701 = r154686 / r154700;
double r154702 = r154697 * r154692;
double r154703 = r154702 * r154692;
double r154704 = r154701 * r154703;
double r154705 = r154699 + r154704;
double r154706 = 21.0;
double r154707 = r154686 / r154706;
double r154708 = r154703 * r154692;
double r154709 = r154708 * r154692;
double r154710 = r154707 * r154709;
double r154711 = r154705 + r154710;
double r154712 = r154689 * r154711;
double r154713 = fabs(r154712);
return r154713;
}
double f(double x) {
double r154714 = 1.0;
double r154715 = atan2(1.0, 0.0);
double r154716 = sqrt(r154715);
double r154717 = r154714 / r154716;
double r154718 = 2.0;
double r154719 = x;
double r154720 = fabs(r154719);
double r154721 = r154718 * r154720;
double r154722 = 3.0;
double r154723 = r154718 / r154722;
double r154724 = r154720 * r154720;
double r154725 = r154724 * r154720;
double r154726 = r154723 * r154725;
double r154727 = r154721 + r154726;
double r154728 = 5.0;
double r154729 = r154714 / r154728;
double r154730 = r154725 * r154720;
double r154731 = r154730 * r154720;
double r154732 = r154729 * r154731;
double r154733 = r154727 + r154732;
double r154734 = 6.0;
double r154735 = pow(r154720, r154734);
double r154736 = r154714 * r154735;
double r154737 = r154736 * r154720;
double r154738 = 21.0;
double r154739 = r154737 / r154738;
double r154740 = r154733 + r154739;
double r154741 = r154717 * r154740;
double r154742 = fabs(r154741);
return r154742;
}



Bits error versus x
Results
Initial program 0.2
rmApplied associate-*l/0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020002 +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)))))))