1 - \left(\frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(0.25482959199999999 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(-0.284496735999999972 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(1.42141374100000006 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(-1.45315202700000001 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot 1.0614054289999999\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}e^{\log \left(\frac{{1}^{3} - \sqrt{{\left(\frac{\frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(0.25482959199999999 + \left(\frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot -0.284496735999999972 + \left(1.42141374100000006 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(-1.45315202700000001 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot 1.0614054289999999\right)\right) \cdot \frac{1 \cdot 1}{{\left(1 + 0.32759110000000002 \cdot \left|x\right|\right)}^{2}}\right)\right)}{e^{{\left(\left|x\right|\right)}^{2}}}\right)}^{3}} \cdot \sqrt{{\left(\frac{\frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(0.25482959199999999 + \left(\frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot -0.284496735999999972 + \left(1.42141374100000006 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(-1.45315202700000001 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot 1.0614054289999999\right)\right) \cdot \frac{1 \cdot 1}{{\left(1 + 0.32759110000000002 \cdot \left|x\right|\right)}^{2}}\right)\right)}{e^{{\left(\left|x\right|\right)}^{2}}}\right)}^{3}}}{\frac{\frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(0.25482959199999999 + \left(\frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot -0.284496735999999972 + \left(1.42141374100000006 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(-1.45315202700000001 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot 1.0614054289999999\right)\right) \cdot \frac{1 \cdot 1}{{\left(1 + 0.32759110000000002 \cdot \left|x\right|\right)}^{2}}\right)\right)}{e^{{\left(\left|x\right|\right)}^{2}}} \cdot \left(1 + \frac{\frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(0.25482959199999999 + \left(\frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot -0.284496735999999972 + \left(1.42141374100000006 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(-1.45315202700000001 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot 1.0614054289999999\right)\right) \cdot \frac{1 \cdot 1}{{\left(1 + 0.32759110000000002 \cdot \left|x\right|\right)}^{2}}\right)\right)}{e^{{\left(\left|x\right|\right)}^{2}}}\right) + 1 \cdot 1}\right)}double f(double x) {
double r294871 = 1.0;
double r294872 = 0.3275911;
double r294873 = x;
double r294874 = fabs(r294873);
double r294875 = r294872 * r294874;
double r294876 = r294871 + r294875;
double r294877 = r294871 / r294876;
double r294878 = 0.254829592;
double r294879 = -0.284496736;
double r294880 = 1.421413741;
double r294881 = -1.453152027;
double r294882 = 1.061405429;
double r294883 = r294877 * r294882;
double r294884 = r294881 + r294883;
double r294885 = r294877 * r294884;
double r294886 = r294880 + r294885;
double r294887 = r294877 * r294886;
double r294888 = r294879 + r294887;
double r294889 = r294877 * r294888;
double r294890 = r294878 + r294889;
double r294891 = r294877 * r294890;
double r294892 = r294874 * r294874;
double r294893 = -r294892;
double r294894 = exp(r294893);
double r294895 = r294891 * r294894;
double r294896 = r294871 - r294895;
return r294896;
}
double f(double x) {
double r294897 = 1.0;
double r294898 = 3.0;
double r294899 = pow(r294897, r294898);
double r294900 = 0.3275911;
double r294901 = x;
double r294902 = fabs(r294901);
double r294903 = r294900 * r294902;
double r294904 = r294897 + r294903;
double r294905 = r294897 / r294904;
double r294906 = 0.254829592;
double r294907 = -0.284496736;
double r294908 = r294905 * r294907;
double r294909 = 1.421413741;
double r294910 = -1.453152027;
double r294911 = 1.061405429;
double r294912 = r294905 * r294911;
double r294913 = r294910 + r294912;
double r294914 = r294905 * r294913;
double r294915 = r294909 + r294914;
double r294916 = r294897 * r294897;
double r294917 = 2.0;
double r294918 = pow(r294904, r294917);
double r294919 = r294916 / r294918;
double r294920 = r294915 * r294919;
double r294921 = r294908 + r294920;
double r294922 = r294906 + r294921;
double r294923 = r294905 * r294922;
double r294924 = pow(r294902, r294917);
double r294925 = exp(r294924);
double r294926 = r294923 / r294925;
double r294927 = pow(r294926, r294898);
double r294928 = sqrt(r294927);
double r294929 = r294928 * r294928;
double r294930 = r294899 - r294929;
double r294931 = r294897 + r294926;
double r294932 = r294926 * r294931;
double r294933 = r294932 + r294916;
double r294934 = r294930 / r294933;
double r294935 = log(r294934);
double r294936 = exp(r294935);
return r294936;
}



Bits error versus x
Results
Initial program 13.8
Simplified13.7
rmApplied distribute-lft-in13.7
Simplified13.7
rmApplied add-exp-log13.7
Simplified13.7
rmApplied flip3--13.7
Simplified13.7
rmApplied add-sqr-sqrt13.0
Final simplification13.0
herbie shell --seed 2020047
(FPCore (x)
:name "Jmat.Real.erf"
:precision binary64
(- 1 (* (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ 0.254829592 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ -0.284496736 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ 1.421413741 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ -1.453152027 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) 1.061405429))))))))) (exp (- (* (fabs x) (fabs x)))))))