\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{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|double f(double x) {
double r189681 = 1.0;
double r189682 = atan2(1.0, 0.0);
double r189683 = sqrt(r189682);
double r189684 = r189681 / r189683;
double r189685 = 2.0;
double r189686 = x;
double r189687 = fabs(r189686);
double r189688 = r189685 * r189687;
double r189689 = 3.0;
double r189690 = r189685 / r189689;
double r189691 = r189687 * r189687;
double r189692 = r189691 * r189687;
double r189693 = r189690 * r189692;
double r189694 = r189688 + r189693;
double r189695 = 5.0;
double r189696 = r189681 / r189695;
double r189697 = r189692 * r189687;
double r189698 = r189697 * r189687;
double r189699 = r189696 * r189698;
double r189700 = r189694 + r189699;
double r189701 = 21.0;
double r189702 = r189681 / r189701;
double r189703 = r189698 * r189687;
double r189704 = r189703 * r189687;
double r189705 = r189702 * r189704;
double r189706 = r189700 + r189705;
double r189707 = r189684 * r189706;
double r189708 = fabs(r189707);
return r189708;
}
double f(double x) {
double r189709 = 1.0;
double r189710 = atan2(1.0, 0.0);
double r189711 = sqrt(r189710);
double r189712 = r189709 / r189711;
double r189713 = 2.0;
double r189714 = x;
double r189715 = fabs(r189714);
double r189716 = r189713 * r189715;
double r189717 = 3.0;
double r189718 = r189713 / r189717;
double r189719 = r189715 * r189715;
double r189720 = r189719 * r189715;
double r189721 = r189718 * r189720;
double r189722 = r189716 + r189721;
double r189723 = 5.0;
double r189724 = r189709 / r189723;
double r189725 = r189720 * r189715;
double r189726 = r189725 * r189715;
double r189727 = r189724 * r189726;
double r189728 = r189722 + r189727;
double r189729 = 21.0;
double r189730 = r189709 / r189729;
double r189731 = r189726 * r189715;
double r189732 = r189731 * r189715;
double r189733 = r189730 * r189732;
double r189734 = r189728 + r189733;
double r189735 = r189712 * r189734;
double r189736 = fabs(r189735);
return r189736;
}



Bits error versus x
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2020046 +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)))))))