\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 357.09970468422745:\\
\;\;\;\;\frac{\sqrt[3]{\left((\left(\left(x \cdot x\right) \cdot x\right) \cdot \frac{2}{3} + \left(2 - x \cdot x\right))_* \cdot (\left(\left(x \cdot x\right) \cdot x\right) \cdot \frac{2}{3} + \left(2 - x \cdot x\right))_*\right) \cdot (\left(\left(x \cdot x\right) \cdot x\right) \cdot \frac{2}{3} + \left(2 - x \cdot x\right))_*}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt[3]{\left(\left(e^{\left(-1 + \varepsilon\right) \cdot x} + \frac{e^{\left(-1 + \varepsilon\right) \cdot x}}{\varepsilon}\right) - \left(\frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon} - e^{x \cdot \left(-1 - \varepsilon\right)}\right)\right) \cdot \left(\left(\left(e^{\left(-1 + \varepsilon\right) \cdot x} + \frac{e^{\left(-1 + \varepsilon\right) \cdot x}}{\varepsilon}\right) - \left(\frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon} - e^{x \cdot \left(-1 - \varepsilon\right)}\right)\right) \cdot \left(\left(e^{\left(-1 + \varepsilon\right) \cdot x} + \frac{e^{\left(-1 + \varepsilon\right) \cdot x}}{\varepsilon}\right) - \left(\frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon} - e^{x \cdot \left(-1 - \varepsilon\right)}\right)\right)\right)}}{2}\\
\end{array}double f(double x, double eps) {
double r4907353 = 1.0;
double r4907354 = eps;
double r4907355 = r4907353 / r4907354;
double r4907356 = r4907353 + r4907355;
double r4907357 = r4907353 - r4907354;
double r4907358 = x;
double r4907359 = r4907357 * r4907358;
double r4907360 = -r4907359;
double r4907361 = exp(r4907360);
double r4907362 = r4907356 * r4907361;
double r4907363 = r4907355 - r4907353;
double r4907364 = r4907353 + r4907354;
double r4907365 = r4907364 * r4907358;
double r4907366 = -r4907365;
double r4907367 = exp(r4907366);
double r4907368 = r4907363 * r4907367;
double r4907369 = r4907362 - r4907368;
double r4907370 = 2.0;
double r4907371 = r4907369 / r4907370;
return r4907371;
}
double f(double x, double eps) {
double r4907372 = x;
double r4907373 = 357.09970468422745;
bool r4907374 = r4907372 <= r4907373;
double r4907375 = r4907372 * r4907372;
double r4907376 = r4907375 * r4907372;
double r4907377 = 0.6666666666666666;
double r4907378 = 2.0;
double r4907379 = r4907378 - r4907375;
double r4907380 = fma(r4907376, r4907377, r4907379);
double r4907381 = r4907380 * r4907380;
double r4907382 = r4907381 * r4907380;
double r4907383 = cbrt(r4907382);
double r4907384 = r4907383 / r4907378;
double r4907385 = -1.0;
double r4907386 = eps;
double r4907387 = r4907385 + r4907386;
double r4907388 = r4907387 * r4907372;
double r4907389 = exp(r4907388);
double r4907390 = r4907389 / r4907386;
double r4907391 = r4907389 + r4907390;
double r4907392 = r4907385 - r4907386;
double r4907393 = r4907372 * r4907392;
double r4907394 = exp(r4907393);
double r4907395 = r4907394 / r4907386;
double r4907396 = r4907395 - r4907394;
double r4907397 = r4907391 - r4907396;
double r4907398 = r4907397 * r4907397;
double r4907399 = r4907397 * r4907398;
double r4907400 = cbrt(r4907399);
double r4907401 = r4907400 / r4907378;
double r4907402 = r4907374 ? r4907384 : r4907401;
return r4907402;
}



Bits error versus x



Bits error versus eps
if x < 357.09970468422745Initial program 39.3
Simplified39.3
Taylor expanded around 0 1.1
Simplified1.1
rmApplied add-cbrt-cube1.1
if 357.09970468422745 < x Initial program 0.1
Simplified0.0
rmApplied add-cbrt-cube0.0
Final simplification0.8
herbie shell --seed 2019119 +o rules:numerics
(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))