\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(e^{\left(-\varepsilon \cdot x\right) - x} + e^{\varepsilon \cdot x - x}\right) + \left(\frac{e^{\varepsilon \cdot x - x}}{\varepsilon} - \frac{e^{\left(-\varepsilon \cdot x\right) - x}}{\varepsilon}\right)}\right)}{2}double f(double x, double eps) {
double r2225936 = 1.0;
double r2225937 = eps;
double r2225938 = r2225936 / r2225937;
double r2225939 = r2225936 + r2225938;
double r2225940 = r2225936 - r2225937;
double r2225941 = x;
double r2225942 = r2225940 * r2225941;
double r2225943 = -r2225942;
double r2225944 = exp(r2225943);
double r2225945 = r2225939 * r2225944;
double r2225946 = r2225938 - r2225936;
double r2225947 = r2225936 + r2225937;
double r2225948 = r2225947 * r2225941;
double r2225949 = -r2225948;
double r2225950 = exp(r2225949);
double r2225951 = r2225946 * r2225950;
double r2225952 = r2225945 - r2225951;
double r2225953 = 2.0;
double r2225954 = r2225952 / r2225953;
return r2225954;
}
double f(double x, double eps) {
double r2225955 = eps;
double r2225956 = x;
double r2225957 = r2225955 * r2225956;
double r2225958 = -r2225957;
double r2225959 = r2225958 - r2225956;
double r2225960 = exp(r2225959);
double r2225961 = r2225957 - r2225956;
double r2225962 = exp(r2225961);
double r2225963 = r2225960 + r2225962;
double r2225964 = r2225962 / r2225955;
double r2225965 = r2225960 / r2225955;
double r2225966 = r2225964 - r2225965;
double r2225967 = r2225963 + r2225966;
double r2225968 = exp(r2225967);
double r2225969 = log(r2225968);
double r2225970 = 2.0;
double r2225971 = r2225969 / r2225970;
return r2225971;
}



Bits error versus x



Bits error versus eps
Results
Initial program 29.6
Simplified29.6
rmApplied add-log-exp31.5
Applied add-log-exp31.2
Applied diff-log31.2
Simplified1.2
Final simplification1.2
herbie shell --seed 2019149
(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))