\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 95.541640315829881:\\
\;\;\;\;\frac{\left(\sqrt[3]{0.66666666666666674 \cdot {x}^{3}} \cdot \sqrt[3]{0.66666666666666674 \cdot {x}^{3}}\right) \cdot \sqrt[3]{0.66666666666666674 \cdot {x}^{3}} + \left(2 - 1 \cdot {x}^{2}\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(1 + \frac{1}{\varepsilon}\right) \cdot \frac{1}{e^{\left(1 - \varepsilon\right) \cdot x}} - \left(\frac{1}{\varepsilon} - 1\right) \cdot e^{-\left(1 + \varepsilon\right) \cdot x}}{2}\\
\end{array}double f(double x, double eps) {
double r31343 = 1.0;
double r31344 = eps;
double r31345 = r31343 / r31344;
double r31346 = r31343 + r31345;
double r31347 = r31343 - r31344;
double r31348 = x;
double r31349 = r31347 * r31348;
double r31350 = -r31349;
double r31351 = exp(r31350);
double r31352 = r31346 * r31351;
double r31353 = r31345 - r31343;
double r31354 = r31343 + r31344;
double r31355 = r31354 * r31348;
double r31356 = -r31355;
double r31357 = exp(r31356);
double r31358 = r31353 * r31357;
double r31359 = r31352 - r31358;
double r31360 = 2.0;
double r31361 = r31359 / r31360;
return r31361;
}
double f(double x, double eps) {
double r31362 = x;
double r31363 = 95.54164031582988;
bool r31364 = r31362 <= r31363;
double r31365 = 0.6666666666666667;
double r31366 = 3.0;
double r31367 = pow(r31362, r31366);
double r31368 = r31365 * r31367;
double r31369 = cbrt(r31368);
double r31370 = r31369 * r31369;
double r31371 = r31370 * r31369;
double r31372 = 2.0;
double r31373 = 1.0;
double r31374 = 2.0;
double r31375 = pow(r31362, r31374);
double r31376 = r31373 * r31375;
double r31377 = r31372 - r31376;
double r31378 = r31371 + r31377;
double r31379 = r31378 / r31372;
double r31380 = eps;
double r31381 = r31373 / r31380;
double r31382 = r31373 + r31381;
double r31383 = 1.0;
double r31384 = r31373 - r31380;
double r31385 = r31384 * r31362;
double r31386 = exp(r31385);
double r31387 = r31383 / r31386;
double r31388 = r31382 * r31387;
double r31389 = r31381 - r31373;
double r31390 = r31373 + r31380;
double r31391 = r31390 * r31362;
double r31392 = -r31391;
double r31393 = exp(r31392);
double r31394 = r31389 * r31393;
double r31395 = r31388 - r31394;
double r31396 = r31395 / r31372;
double r31397 = r31364 ? r31379 : r31396;
return r31397;
}



Bits error versus x



Bits error versus eps
Results
if x < 95.54164031582988Initial program 39.6
Taylor expanded around 0 1.3
rmApplied associate--l+1.3
rmApplied add-cube-cbrt1.3
if 95.54164031582988 < x Initial program 0.3
rmApplied exp-neg0.3
Final simplification1.0
herbie shell --seed 2020047
(FPCore (x eps)
:name "NMSE Section 6.1 mentioned, A"
:precision binary64
(/ (- (* (+ 1 (/ 1 eps)) (exp (- (* (- 1 eps) x)))) (* (- (/ 1 eps) 1) (exp (- (* (+ 1 eps) x))))) 2))