\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}\begin{array}{l}
\mathbf{if}\;x \le 23.630683338257473:\\
\;\;\;\;\left(x \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) - \left(x \cdot x\right) \cdot \frac{1}{2}\right) + 1\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{\frac{\frac{1}{2}}{e^{x - \varepsilon \cdot x}}}{\varepsilon} + \frac{\frac{1}{2}}{e^{x - \varepsilon \cdot x}}\right) - \left(\frac{\frac{\frac{1}{2}}{e^{\varepsilon \cdot x + x}}}{\varepsilon} - \frac{\frac{1}{2}}{e^{\varepsilon \cdot x + x}}\right)\\
\end{array}double f(double x, double eps) {
double r1212337 = 1.0;
double r1212338 = eps;
double r1212339 = r1212337 / r1212338;
double r1212340 = r1212337 + r1212339;
double r1212341 = r1212337 - r1212338;
double r1212342 = x;
double r1212343 = r1212341 * r1212342;
double r1212344 = -r1212343;
double r1212345 = exp(r1212344);
double r1212346 = r1212340 * r1212345;
double r1212347 = r1212339 - r1212337;
double r1212348 = r1212337 + r1212338;
double r1212349 = r1212348 * r1212342;
double r1212350 = -r1212349;
double r1212351 = exp(r1212350);
double r1212352 = r1212347 * r1212351;
double r1212353 = r1212346 - r1212352;
double r1212354 = 2.0;
double r1212355 = r1212353 / r1212354;
return r1212355;
}
double f(double x, double eps) {
double r1212356 = x;
double r1212357 = 23.630683338257473;
bool r1212358 = r1212356 <= r1212357;
double r1212359 = r1212356 * r1212356;
double r1212360 = 0.3333333333333333;
double r1212361 = r1212359 * r1212360;
double r1212362 = r1212356 * r1212361;
double r1212363 = 0.5;
double r1212364 = r1212359 * r1212363;
double r1212365 = r1212362 - r1212364;
double r1212366 = 1.0;
double r1212367 = r1212365 + r1212366;
double r1212368 = eps;
double r1212369 = r1212368 * r1212356;
double r1212370 = r1212356 - r1212369;
double r1212371 = exp(r1212370);
double r1212372 = r1212363 / r1212371;
double r1212373 = r1212372 / r1212368;
double r1212374 = r1212373 + r1212372;
double r1212375 = r1212369 + r1212356;
double r1212376 = exp(r1212375);
double r1212377 = r1212363 / r1212376;
double r1212378 = r1212377 / r1212368;
double r1212379 = r1212378 - r1212377;
double r1212380 = r1212374 - r1212379;
double r1212381 = r1212358 ? r1212367 : r1212380;
return r1212381;
}



Bits error versus x



Bits error versus eps
Results
if x < 23.630683338257473Initial program 39.3
Simplified39.3
Taylor expanded around 0 1.0
Simplified1.0
if 23.630683338257473 < x Initial program 0.2
Simplified0.2
Taylor expanded around -inf 0.2
Final simplification0.8
herbie shell --seed 2019132
(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))