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|}\frac{1 \cdot 1 + \left(-\left(\left(\sqrt{\frac{1}{1 \cdot 1 - \left(0.32759110000000002 \cdot \left|x\right|\right) \cdot \left(0.32759110000000002 \cdot \left|x\right|\right)} \cdot \left(\left(1 - 0.32759110000000002 \cdot \left|x\right|\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 \sqrt{\frac{1}{1 \cdot 1 - \left(0.32759110000000002 \cdot \left|x\right|\right) \cdot \left(0.32759110000000002 \cdot \left|x\right|\right)} \cdot \left(\left(1 - 0.32759110000000002 \cdot \left|x\right|\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)}\right) \cdot \left(\frac{1}{1 \cdot 1 - \left(0.32759110000000002 \cdot \left|x\right|\right) \cdot \left(0.32759110000000002 \cdot \left|x\right|\right)} \cdot \left(\left(1 - 0.32759110000000002 \cdot \left|x\right|\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)\right)\right) \cdot \left(\frac{1}{e^{{\left(\left|x\right|\right)}^{2}}} \cdot \frac{1}{e^{{\left(\left|x\right|\right)}^{2}}}\right)\right)}{1 + \left(1 \cdot \frac{\left(\left(1.0614054289999999 \cdot \frac{1}{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{4}} + \left(1.42141374100000006 \cdot \frac{1}{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{2}} + 0.25482959199999999\right)\right) - \left(1.45315202700000001 \cdot \frac{1}{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{3}} + 0.284496735999999972 \cdot \frac{1}{0.32759110000000002 \cdot \left|x\right| + 1}\right)\right) \cdot \left(1 - 0.32759110000000002 \cdot \left|x\right|\right)}{1 - 0.107315928799210022 \cdot {\left(\left|x\right|\right)}^{2}}\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}}double f(double x) {
double r318916 = 1.0;
double r318917 = 0.3275911;
double r318918 = x;
double r318919 = fabs(r318918);
double r318920 = r318917 * r318919;
double r318921 = r318916 + r318920;
double r318922 = r318916 / r318921;
double r318923 = 0.254829592;
double r318924 = -0.284496736;
double r318925 = 1.421413741;
double r318926 = -1.453152027;
double r318927 = 1.061405429;
double r318928 = r318922 * r318927;
double r318929 = r318926 + r318928;
double r318930 = r318922 * r318929;
double r318931 = r318925 + r318930;
double r318932 = r318922 * r318931;
double r318933 = r318924 + r318932;
double r318934 = r318922 * r318933;
double r318935 = r318923 + r318934;
double r318936 = r318922 * r318935;
double r318937 = r318919 * r318919;
double r318938 = -r318937;
double r318939 = exp(r318938);
double r318940 = r318936 * r318939;
double r318941 = r318916 - r318940;
return r318941;
}
double f(double x) {
double r318942 = 1.0;
double r318943 = r318942 * r318942;
double r318944 = 0.3275911;
double r318945 = x;
double r318946 = fabs(r318945);
double r318947 = r318944 * r318946;
double r318948 = r318947 * r318947;
double r318949 = r318943 - r318948;
double r318950 = r318942 / r318949;
double r318951 = r318942 - r318947;
double r318952 = 0.254829592;
double r318953 = r318942 + r318947;
double r318954 = r318942 / r318953;
double r318955 = -0.284496736;
double r318956 = 1.421413741;
double r318957 = -1.453152027;
double r318958 = 1.061405429;
double r318959 = r318954 * r318958;
double r318960 = r318957 + r318959;
double r318961 = r318954 * r318960;
double r318962 = r318956 + r318961;
double r318963 = r318954 * r318962;
double r318964 = r318955 + r318963;
double r318965 = r318954 * r318964;
double r318966 = r318952 + r318965;
double r318967 = r318951 * r318966;
double r318968 = r318950 * r318967;
double r318969 = sqrt(r318968);
double r318970 = r318969 * r318969;
double r318971 = r318970 * r318968;
double r318972 = 1.0;
double r318973 = 2.0;
double r318974 = pow(r318946, r318973);
double r318975 = exp(r318974);
double r318976 = r318972 / r318975;
double r318977 = r318976 * r318976;
double r318978 = r318971 * r318977;
double r318979 = -r318978;
double r318980 = r318943 + r318979;
double r318981 = r318947 + r318942;
double r318982 = 4.0;
double r318983 = pow(r318981, r318982);
double r318984 = r318972 / r318983;
double r318985 = r318958 * r318984;
double r318986 = pow(r318981, r318973);
double r318987 = r318972 / r318986;
double r318988 = r318956 * r318987;
double r318989 = r318988 + r318952;
double r318990 = r318985 + r318989;
double r318991 = 1.453152027;
double r318992 = 3.0;
double r318993 = pow(r318981, r318992);
double r318994 = r318972 / r318993;
double r318995 = r318991 * r318994;
double r318996 = 0.284496736;
double r318997 = r318972 / r318981;
double r318998 = r318996 * r318997;
double r318999 = r318995 + r318998;
double r319000 = r318990 - r318999;
double r319001 = r319000 * r318951;
double r319002 = 0.10731592879921002;
double r319003 = r319002 * r318974;
double r319004 = r318942 - r319003;
double r319005 = r319001 / r319004;
double r319006 = r318942 * r319005;
double r319007 = r318946 * r318946;
double r319008 = -r319007;
double r319009 = exp(r319008);
double r319010 = r319006 * r319009;
double r319011 = r318942 + r319010;
double r319012 = r318980 / r319011;
return r319012;
}



Bits error versus x
Results
Initial program 13.6
rmApplied flip-+13.6
Applied associate-/r/13.6
Applied associate-*l*13.6
rmApplied flip--13.6
Simplified13.6
rmApplied add-sqr-sqrt10.4
Taylor expanded around 0 10.4
Final simplification10.4
herbie shell --seed 2020049
(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)))))))