\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(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) + \left(\left(1 \cdot \frac{\frac{1}{\sqrt{\pi}}}{21}\right) \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|\right|double f(double x) {
double r220695 = 1.0;
double r220696 = atan2(1.0, 0.0);
double r220697 = sqrt(r220696);
double r220698 = r220695 / r220697;
double r220699 = 2.0;
double r220700 = x;
double r220701 = fabs(r220700);
double r220702 = r220699 * r220701;
double r220703 = 3.0;
double r220704 = r220699 / r220703;
double r220705 = r220701 * r220701;
double r220706 = r220705 * r220701;
double r220707 = r220704 * r220706;
double r220708 = r220702 + r220707;
double r220709 = 5.0;
double r220710 = r220695 / r220709;
double r220711 = r220706 * r220701;
double r220712 = r220711 * r220701;
double r220713 = r220710 * r220712;
double r220714 = r220708 + r220713;
double r220715 = 21.0;
double r220716 = r220695 / r220715;
double r220717 = r220712 * r220701;
double r220718 = r220717 * r220701;
double r220719 = r220716 * r220718;
double r220720 = r220714 + r220719;
double r220721 = r220698 * r220720;
double r220722 = fabs(r220721);
return r220722;
}
double f(double x) {
double r220723 = 1.0;
double r220724 = atan2(1.0, 0.0);
double r220725 = sqrt(r220724);
double r220726 = r220723 / r220725;
double r220727 = 2.0;
double r220728 = x;
double r220729 = fabs(r220728);
double r220730 = r220727 * r220729;
double r220731 = 3.0;
double r220732 = r220727 / r220731;
double r220733 = r220729 * r220729;
double r220734 = r220733 * r220729;
double r220735 = r220732 * r220734;
double r220736 = r220730 + r220735;
double r220737 = 5.0;
double r220738 = r220723 / r220737;
double r220739 = r220734 * r220729;
double r220740 = r220739 * r220729;
double r220741 = r220738 * r220740;
double r220742 = r220736 + r220741;
double r220743 = r220726 * r220742;
double r220744 = 21.0;
double r220745 = r220726 / r220744;
double r220746 = r220723 * r220745;
double r220747 = 6.0;
double r220748 = pow(r220729, r220747);
double r220749 = r220746 * r220748;
double r220750 = r220749 * r220729;
double r220751 = r220743 + r220750;
double r220752 = fabs(r220751);
return r220752;
}



Bits error versus x
Results
Initial program 0.2
rmApplied distribute-lft-in0.2
Simplified0.2
rmApplied div-inv0.2
Applied associate-*l*0.2
Simplified0.1
Final simplification0.1
herbie shell --seed 2020025
(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)))))))