\frac{\left(1 + \frac{1}{\varepsilon}\right) \cdot e^{-\left(1 - \varepsilon\right) \cdot x} - \left(\frac{1}{\varepsilon} - 1\right) \cdot e^{-\left(1 + \varepsilon\right) \cdot x}}{2}\frac{\log \left(e^{\left(\left(\frac{e^{\left(\varepsilon - 1\right) \cdot x}}{\varepsilon} - \frac{e^{\left(-1 - \varepsilon\right) \cdot x}}{\varepsilon}\right) + e^{\left(-1 - \varepsilon\right) \cdot x}\right) + e^{\left(\varepsilon - 1\right) \cdot x}}\right)}{2}double f(double x, double eps) {
double r1271004 = 1.0;
double r1271005 = eps;
double r1271006 = r1271004 / r1271005;
double r1271007 = r1271004 + r1271006;
double r1271008 = r1271004 - r1271005;
double r1271009 = x;
double r1271010 = r1271008 * r1271009;
double r1271011 = -r1271010;
double r1271012 = exp(r1271011);
double r1271013 = r1271007 * r1271012;
double r1271014 = r1271006 - r1271004;
double r1271015 = r1271004 + r1271005;
double r1271016 = r1271015 * r1271009;
double r1271017 = -r1271016;
double r1271018 = exp(r1271017);
double r1271019 = r1271014 * r1271018;
double r1271020 = r1271013 - r1271019;
double r1271021 = 2.0;
double r1271022 = r1271020 / r1271021;
return r1271022;
}
double f(double x, double eps) {
double r1271023 = eps;
double r1271024 = 1.0;
double r1271025 = r1271023 - r1271024;
double r1271026 = x;
double r1271027 = r1271025 * r1271026;
double r1271028 = exp(r1271027);
double r1271029 = r1271028 / r1271023;
double r1271030 = -1.0;
double r1271031 = r1271030 - r1271023;
double r1271032 = r1271031 * r1271026;
double r1271033 = exp(r1271032);
double r1271034 = r1271033 / r1271023;
double r1271035 = r1271029 - r1271034;
double r1271036 = r1271035 + r1271033;
double r1271037 = r1271036 + r1271028;
double r1271038 = exp(r1271037);
double r1271039 = log(r1271038);
double r1271040 = 2.0;
double r1271041 = r1271039 / r1271040;
return r1271041;
}



Bits error versus x



Bits error versus eps
Results
Initial program 29.6
Simplified29.6
rmApplied add-log-exp31.4
Applied add-log-exp31.0
Applied add-log-exp31.1
Applied sum-log31.1
Applied diff-log31.1
Simplified1.0
Final simplification1.0
herbie shell --seed 2019153
(FPCore (x eps)
:name "NMSE Section 6.1 mentioned, A"
(/ (- (* (+ 1 (/ 1 eps)) (exp (- (* (- 1 eps) x)))) (* (- (/ 1 eps) 1) (exp (- (* (+ 1 eps) x))))) 2))