1 - \left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(0.2548295919999999936678136691625695675611 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-0.2844967359999999723108032867457950487733 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(1.421413741000000063863240029604639858007 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-1.453152027000000012790792425221297889948 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot 1.061405428999999900341322245367337018251\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}{e}^{\left(\log \left(\mathsf{fma}\left(\frac{\mathsf{fma}\left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|}, \mathsf{fma}\left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|}, \mathsf{fma}\left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|}, \mathsf{fma}\left(\log \left(e^{\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.3275911000000000239396058532292954623699, 1\right)}}\right), 1.061405428999999900341322245367337018251, -1.453152027000000012790792425221297889948\right), 1.421413741000000063863240029604639858007\right), -0.2844967359999999723108032867457950487733\right), 0.2548295919999999936678136691625695675611\right)}{e^{\left|x\right| \cdot \left|x\right|}}, \frac{-1}{\mathsf{fma}\left(\left|x\right|, 0.3275911000000000239396058532292954623699, 1\right)}, 1\right)\right)\right)}double f(double x) {
double r241903 = 1.0;
double r241904 = 0.3275911;
double r241905 = x;
double r241906 = fabs(r241905);
double r241907 = r241904 * r241906;
double r241908 = r241903 + r241907;
double r241909 = r241903 / r241908;
double r241910 = 0.254829592;
double r241911 = -0.284496736;
double r241912 = 1.421413741;
double r241913 = -1.453152027;
double r241914 = 1.061405429;
double r241915 = r241909 * r241914;
double r241916 = r241913 + r241915;
double r241917 = r241909 * r241916;
double r241918 = r241912 + r241917;
double r241919 = r241909 * r241918;
double r241920 = r241911 + r241919;
double r241921 = r241909 * r241920;
double r241922 = r241910 + r241921;
double r241923 = r241909 * r241922;
double r241924 = r241906 * r241906;
double r241925 = -r241924;
double r241926 = exp(r241925);
double r241927 = r241923 * r241926;
double r241928 = r241903 - r241927;
return r241928;
}
double f(double x) {
double r241929 = exp(1.0);
double r241930 = 1.0;
double r241931 = 0.3275911;
double r241932 = x;
double r241933 = fabs(r241932);
double r241934 = r241931 * r241933;
double r241935 = r241930 + r241934;
double r241936 = r241930 / r241935;
double r241937 = fma(r241933, r241931, r241930);
double r241938 = r241930 / r241937;
double r241939 = exp(r241938);
double r241940 = log(r241939);
double r241941 = 1.061405429;
double r241942 = -1.453152027;
double r241943 = fma(r241940, r241941, r241942);
double r241944 = 1.421413741;
double r241945 = fma(r241936, r241943, r241944);
double r241946 = -0.284496736;
double r241947 = fma(r241936, r241945, r241946);
double r241948 = 0.254829592;
double r241949 = fma(r241936, r241947, r241948);
double r241950 = r241933 * r241933;
double r241951 = exp(r241950);
double r241952 = r241949 / r241951;
double r241953 = -r241930;
double r241954 = r241953 / r241937;
double r241955 = fma(r241952, r241954, r241930);
double r241956 = log(r241955);
double r241957 = pow(r241929, r241956);
return r241957;
}



Bits error versus x
Initial program 13.8
Simplified13.8
rmApplied add-log-exp13.8
Simplified13.8
rmApplied add-exp-log13.8
rmApplied pow113.8
Applied log-pow13.8
Applied exp-prod13.8
Simplified13.8
Final simplification13.8
herbie shell --seed 2020001 +o rules:numerics
(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)))))))