\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 r2447827 = 1.0;
double r2447828 = atan2(1.0, 0.0);
double r2447829 = sqrt(r2447828);
double r2447830 = r2447827 / r2447829;
double r2447831 = 2.0;
double r2447832 = x;
double r2447833 = fabs(r2447832);
double r2447834 = r2447831 * r2447833;
double r2447835 = 3.0;
double r2447836 = r2447831 / r2447835;
double r2447837 = r2447833 * r2447833;
double r2447838 = r2447837 * r2447833;
double r2447839 = r2447836 * r2447838;
double r2447840 = r2447834 + r2447839;
double r2447841 = 5.0;
double r2447842 = r2447827 / r2447841;
double r2447843 = r2447838 * r2447833;
double r2447844 = r2447843 * r2447833;
double r2447845 = r2447842 * r2447844;
double r2447846 = r2447840 + r2447845;
double r2447847 = 21.0;
double r2447848 = r2447827 / r2447847;
double r2447849 = r2447844 * r2447833;
double r2447850 = r2447849 * r2447833;
double r2447851 = r2447848 * r2447850;
double r2447852 = r2447846 + r2447851;
double r2447853 = r2447830 * r2447852;
double r2447854 = fabs(r2447853);
return r2447854;
}
double f(double x) {
double r2447855 = 1.0;
double r2447856 = atan2(1.0, 0.0);
double r2447857 = sqrt(r2447856);
double r2447858 = r2447855 / r2447857;
double r2447859 = 0.2;
double r2447860 = x;
double r2447861 = fabs(r2447860);
double r2447862 = r2447861 * r2447861;
double r2447863 = r2447862 * r2447861;
double r2447864 = r2447863 * r2447861;
double r2447865 = r2447861 * r2447864;
double r2447866 = r2447859 * r2447865;
double r2447867 = 2.0;
double r2447868 = r2447861 * r2447867;
double r2447869 = 0.6666666666666666;
double r2447870 = r2447863 * r2447869;
double r2447871 = r2447868 + r2447870;
double r2447872 = r2447866 + r2447871;
double r2447873 = r2447861 * r2447865;
double r2447874 = r2447861 * r2447873;
double r2447875 = 0.047619047619047616;
double r2447876 = r2447874 * r2447875;
double r2447877 = r2447872 + r2447876;
double r2447878 = r2447858 * r2447877;
double r2447879 = fabs(r2447878);
return r2447879;
}



Bits error versus x
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2019154 +o rules:numerics
(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)))))))