\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 r127758 = 1.0;
double r127759 = atan2(1.0, 0.0);
double r127760 = sqrt(r127759);
double r127761 = r127758 / r127760;
double r127762 = 2.0;
double r127763 = x;
double r127764 = fabs(r127763);
double r127765 = r127762 * r127764;
double r127766 = 3.0;
double r127767 = r127762 / r127766;
double r127768 = r127764 * r127764;
double r127769 = r127768 * r127764;
double r127770 = r127767 * r127769;
double r127771 = r127765 + r127770;
double r127772 = 5.0;
double r127773 = r127758 / r127772;
double r127774 = r127769 * r127764;
double r127775 = r127774 * r127764;
double r127776 = r127773 * r127775;
double r127777 = r127771 + r127776;
double r127778 = 21.0;
double r127779 = r127758 / r127778;
double r127780 = r127775 * r127764;
double r127781 = r127780 * r127764;
double r127782 = r127779 * r127781;
double r127783 = r127777 + r127782;
double r127784 = r127761 * r127783;
double r127785 = fabs(r127784);
return r127785;
}
double f(double x) {
double r127786 = 1.0;
double r127787 = atan2(1.0, 0.0);
double r127788 = sqrt(r127787);
double r127789 = r127786 / r127788;
double r127790 = 2.0;
double r127791 = x;
double r127792 = fabs(r127791);
double r127793 = r127790 * r127792;
double r127794 = 3.0;
double r127795 = r127790 / r127794;
double r127796 = r127792 * r127792;
double r127797 = r127796 * r127792;
double r127798 = r127795 * r127797;
double r127799 = r127793 + r127798;
double r127800 = 5.0;
double r127801 = r127786 / r127800;
double r127802 = r127797 * r127792;
double r127803 = r127802 * r127792;
double r127804 = r127801 * r127803;
double r127805 = r127799 + r127804;
double r127806 = 21.0;
double r127807 = r127786 / r127806;
double r127808 = r127803 * r127792;
double r127809 = r127808 * r127792;
double r127810 = r127807 * r127809;
double r127811 = r127805 + r127810;
double r127812 = r127789 * r127811;
double r127813 = fabs(r127812);
return r127813;
}



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)))))))