\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 44.840790515394986:\\
\;\;\;\;\frac{\frac{\sqrt[3]{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right), \mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right) \cdot \mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right), \left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot \left(-x\right)\right)\right)\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right), \mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right) \cdot \mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right), \left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot \left(-x\right)\right)\right)\right), \mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right), \left(x \cdot \left(-x\right)\right) \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right), \mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right) \cdot \mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right), \left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot \left(-x\right)\right)\right)\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right), \mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right) \cdot \mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right), \left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot \left(-x\right)\right)\right)\right)\right)\right)}}{\sqrt[3]{\mathsf{fma}\left(x \cdot x, x \cdot x + \mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right), \mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right) \cdot \mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right)\right) \cdot \mathsf{fma}\left(x \cdot x, x \cdot x + \mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right), \mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right) \cdot \mathsf{fma}\left(\frac{2}{3} \cdot x, x \cdot x, 2\right)\right)}}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{e^{\log \left(\left(e^{x \cdot \left(-1 - \varepsilon\right)} - \frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon}\right) + \left(\frac{e^{x \cdot \left(\varepsilon + -1\right)}}{\varepsilon} + e^{x \cdot \left(\varepsilon + -1\right)}\right)\right)}}{2}\\
\end{array}double f(double x, double eps) {
double r2352269 = 1.0;
double r2352270 = eps;
double r2352271 = r2352269 / r2352270;
double r2352272 = r2352269 + r2352271;
double r2352273 = r2352269 - r2352270;
double r2352274 = x;
double r2352275 = r2352273 * r2352274;
double r2352276 = -r2352275;
double r2352277 = exp(r2352276);
double r2352278 = r2352272 * r2352277;
double r2352279 = r2352271 - r2352269;
double r2352280 = r2352269 + r2352270;
double r2352281 = r2352280 * r2352274;
double r2352282 = -r2352281;
double r2352283 = exp(r2352282);
double r2352284 = r2352279 * r2352283;
double r2352285 = r2352278 - r2352284;
double r2352286 = 2.0;
double r2352287 = r2352285 / r2352286;
return r2352287;
}
double f(double x, double eps) {
double r2352288 = x;
double r2352289 = 44.840790515394986;
bool r2352290 = r2352288 <= r2352289;
double r2352291 = 0.6666666666666666;
double r2352292 = r2352291 * r2352288;
double r2352293 = r2352288 * r2352288;
double r2352294 = 2.0;
double r2352295 = fma(r2352292, r2352293, r2352294);
double r2352296 = r2352295 * r2352295;
double r2352297 = -r2352288;
double r2352298 = r2352288 * r2352297;
double r2352299 = r2352293 * r2352298;
double r2352300 = r2352293 * r2352299;
double r2352301 = fma(r2352295, r2352296, r2352300);
double r2352302 = r2352301 * r2352301;
double r2352303 = r2352298 * r2352302;
double r2352304 = fma(r2352302, r2352295, r2352303);
double r2352305 = cbrt(r2352304);
double r2352306 = r2352293 + r2352295;
double r2352307 = fma(r2352293, r2352306, r2352296);
double r2352308 = r2352307 * r2352307;
double r2352309 = cbrt(r2352308);
double r2352310 = r2352305 / r2352309;
double r2352311 = r2352310 / r2352294;
double r2352312 = -1.0;
double r2352313 = eps;
double r2352314 = r2352312 - r2352313;
double r2352315 = r2352288 * r2352314;
double r2352316 = exp(r2352315);
double r2352317 = r2352316 / r2352313;
double r2352318 = r2352316 - r2352317;
double r2352319 = r2352313 + r2352312;
double r2352320 = r2352288 * r2352319;
double r2352321 = exp(r2352320);
double r2352322 = r2352321 / r2352313;
double r2352323 = r2352322 + r2352321;
double r2352324 = r2352318 + r2352323;
double r2352325 = log(r2352324);
double r2352326 = exp(r2352325);
double r2352327 = r2352326 / r2352294;
double r2352328 = r2352290 ? r2352311 : r2352327;
return r2352328;
}



Bits error versus x



Bits error versus eps
if x < 44.840790515394986Initial program 39.0
Simplified39.0
Taylor expanded around 0 1.2
Simplified1.2
rmApplied add-cbrt-cube1.2
rmApplied flip3--1.2
Applied flip3--1.2
Applied associate-*l/1.2
Applied frac-times1.2
Applied cbrt-div1.2
Simplified1.2
Simplified1.2
if 44.840790515394986 < x Initial program 0.2
Simplified0.2
rmApplied add-exp-log0.2
Final simplification1.0
herbie shell --seed 2019135 +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))