\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|x\right|\right) \cdot {\left(\left|x\right|\right)}^{6}}{21}\right)\right|double f(double x) {
double r130783 = 1.0;
double r130784 = atan2(1.0, 0.0);
double r130785 = sqrt(r130784);
double r130786 = r130783 / r130785;
double r130787 = 2.0;
double r130788 = x;
double r130789 = fabs(r130788);
double r130790 = r130787 * r130789;
double r130791 = 3.0;
double r130792 = r130787 / r130791;
double r130793 = r130789 * r130789;
double r130794 = r130793 * r130789;
double r130795 = r130792 * r130794;
double r130796 = r130790 + r130795;
double r130797 = 5.0;
double r130798 = r130783 / r130797;
double r130799 = r130794 * r130789;
double r130800 = r130799 * r130789;
double r130801 = r130798 * r130800;
double r130802 = r130796 + r130801;
double r130803 = 21.0;
double r130804 = r130783 / r130803;
double r130805 = r130800 * r130789;
double r130806 = r130805 * r130789;
double r130807 = r130804 * r130806;
double r130808 = r130802 + r130807;
double r130809 = r130786 * r130808;
double r130810 = fabs(r130809);
return r130810;
}
double f(double x) {
double r130811 = 1.0;
double r130812 = atan2(1.0, 0.0);
double r130813 = sqrt(r130812);
double r130814 = r130811 / r130813;
double r130815 = 2.0;
double r130816 = x;
double r130817 = fabs(r130816);
double r130818 = r130815 * r130817;
double r130819 = 3.0;
double r130820 = r130815 / r130819;
double r130821 = r130817 * r130817;
double r130822 = r130821 * r130817;
double r130823 = r130820 * r130822;
double r130824 = r130818 + r130823;
double r130825 = 5.0;
double r130826 = r130811 / r130825;
double r130827 = r130822 * r130817;
double r130828 = r130827 * r130817;
double r130829 = r130826 * r130828;
double r130830 = r130824 + r130829;
double r130831 = r130811 * r130817;
double r130832 = 6.0;
double r130833 = pow(r130817, r130832);
double r130834 = r130831 * r130833;
double r130835 = 21.0;
double r130836 = r130834 / r130835;
double r130837 = r130830 + r130836;
double r130838 = r130814 * r130837;
double r130839 = fabs(r130838);
return r130839;
}



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