\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{\frac{{\left(\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}}\right)}^{3} + {\left(2 - 1 \cdot {x}^{2}\right)}^{3}}{\left(2 - 1 \cdot {x}^{2}\right) \cdot \left(2 - 1 \cdot {x}^{2}\right) + \left(-\left(0.66666666666666674 \cdot {x}^{3}\right) \cdot \left(2 - \left(1 \cdot {x}^{2} + 0.66666666666666674 \cdot {x}^{3}\right)\right)\right)}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(1 + \frac{1}{\varepsilon}\right) \cdot \left(\left(\sqrt[3]{e^{-\left(1 - \varepsilon\right) \cdot x}} \cdot \sqrt[3]{e^{-\left(1 - \varepsilon\right) \cdot x}}\right) \cdot \sqrt[3]{e^{-\left(1 - \varepsilon\right) \cdot x}}\right) - \left(\frac{1}{\varepsilon} - 1\right) \cdot e^{-\left(1 + \varepsilon\right) \cdot x}}{2}\\
\end{array}double f(double x, double eps) {
double r33358 = 1.0;
double r33359 = eps;
double r33360 = r33358 / r33359;
double r33361 = r33358 + r33360;
double r33362 = r33358 - r33359;
double r33363 = x;
double r33364 = r33362 * r33363;
double r33365 = -r33364;
double r33366 = exp(r33365);
double r33367 = r33361 * r33366;
double r33368 = r33360 - r33358;
double r33369 = r33358 + r33359;
double r33370 = r33369 * r33363;
double r33371 = -r33370;
double r33372 = exp(r33371);
double r33373 = r33368 * r33372;
double r33374 = r33367 - r33373;
double r33375 = 2.0;
double r33376 = r33374 / r33375;
return r33376;
}
double f(double x, double eps) {
double r33377 = x;
double r33378 = 95.54164031582988;
bool r33379 = r33377 <= r33378;
double r33380 = 0.6666666666666667;
double r33381 = 3.0;
double r33382 = pow(r33377, r33381);
double r33383 = r33380 * r33382;
double r33384 = cbrt(r33383);
double r33385 = r33384 * r33384;
double r33386 = r33385 * r33384;
double r33387 = pow(r33386, r33381);
double r33388 = 2.0;
double r33389 = 1.0;
double r33390 = 2.0;
double r33391 = pow(r33377, r33390);
double r33392 = r33389 * r33391;
double r33393 = r33388 - r33392;
double r33394 = pow(r33393, r33381);
double r33395 = r33387 + r33394;
double r33396 = r33393 * r33393;
double r33397 = r33392 + r33383;
double r33398 = r33388 - r33397;
double r33399 = r33383 * r33398;
double r33400 = -r33399;
double r33401 = r33396 + r33400;
double r33402 = r33395 / r33401;
double r33403 = r33402 / r33388;
double r33404 = eps;
double r33405 = r33389 / r33404;
double r33406 = r33389 + r33405;
double r33407 = r33389 - r33404;
double r33408 = r33407 * r33377;
double r33409 = -r33408;
double r33410 = exp(r33409);
double r33411 = cbrt(r33410);
double r33412 = r33411 * r33411;
double r33413 = r33412 * r33411;
double r33414 = r33406 * r33413;
double r33415 = r33405 - r33389;
double r33416 = r33389 + r33404;
double r33417 = r33416 * r33377;
double r33418 = -r33417;
double r33419 = exp(r33418);
double r33420 = r33415 * r33419;
double r33421 = r33414 - r33420;
double r33422 = r33421 / r33388;
double r33423 = r33379 ? r33403 : r33422;
return r33423;
}



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
rmApplied flip3-+1.3
Simplified1.3
if 95.54164031582988 < x Initial program 0.3
rmApplied add-cube-cbrt0.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))