\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(\frac{1}{5} \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \left(\left|x\right| \cdot 2 + \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \frac{2}{3}\right)\right) + \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right)\right) \cdot \frac{1}{21}\right)\right|double f(double x) {
double r5154746 = 1.0;
double r5154747 = atan2(1.0, 0.0);
double r5154748 = sqrt(r5154747);
double r5154749 = r5154746 / r5154748;
double r5154750 = 2.0;
double r5154751 = x;
double r5154752 = fabs(r5154751);
double r5154753 = r5154750 * r5154752;
double r5154754 = 3.0;
double r5154755 = r5154750 / r5154754;
double r5154756 = r5154752 * r5154752;
double r5154757 = r5154756 * r5154752;
double r5154758 = r5154755 * r5154757;
double r5154759 = r5154753 + r5154758;
double r5154760 = 5.0;
double r5154761 = r5154746 / r5154760;
double r5154762 = r5154757 * r5154752;
double r5154763 = r5154762 * r5154752;
double r5154764 = r5154761 * r5154763;
double r5154765 = r5154759 + r5154764;
double r5154766 = 21.0;
double r5154767 = r5154746 / r5154766;
double r5154768 = r5154763 * r5154752;
double r5154769 = r5154768 * r5154752;
double r5154770 = r5154767 * r5154769;
double r5154771 = r5154765 + r5154770;
double r5154772 = r5154749 * r5154771;
double r5154773 = fabs(r5154772);
return r5154773;
}
double f(double x) {
double r5154774 = 1.0;
double r5154775 = atan2(1.0, 0.0);
double r5154776 = sqrt(r5154775);
double r5154777 = r5154774 / r5154776;
double r5154778 = 0.2;
double r5154779 = x;
double r5154780 = fabs(r5154779);
double r5154781 = r5154780 * r5154780;
double r5154782 = r5154781 * r5154780;
double r5154783 = r5154782 * r5154780;
double r5154784 = r5154780 * r5154783;
double r5154785 = r5154778 * r5154784;
double r5154786 = 2.0;
double r5154787 = r5154780 * r5154786;
double r5154788 = 0.6666666666666666;
double r5154789 = r5154782 * r5154788;
double r5154790 = r5154787 + r5154789;
double r5154791 = r5154785 + r5154790;
double r5154792 = r5154780 * r5154784;
double r5154793 = r5154780 * r5154792;
double r5154794 = 0.047619047619047616;
double r5154795 = r5154793 * r5154794;
double r5154796 = r5154791 + r5154795;
double r5154797 = r5154777 * r5154796;
double r5154798 = fabs(r5154797);
return r5154798;
}



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