\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}\frac{\mathsf{fma}\left(e^{x \cdot \left(-\left(\varepsilon + 1\right)\right)}, 1, 1 \cdot \left(\left(\frac{e^{\left(\varepsilon - 1\right) \cdot x}}{\varepsilon} - \frac{e^{x \cdot \left(-\left(\varepsilon + 1\right)\right)}}{\varepsilon}\right) + e^{\left(\varepsilon - 1\right) \cdot x}\right)\right)}{2}double f(double x, double eps) {
double r1936285 = 1.0;
double r1936286 = eps;
double r1936287 = r1936285 / r1936286;
double r1936288 = r1936285 + r1936287;
double r1936289 = r1936285 - r1936286;
double r1936290 = x;
double r1936291 = r1936289 * r1936290;
double r1936292 = -r1936291;
double r1936293 = exp(r1936292);
double r1936294 = r1936288 * r1936293;
double r1936295 = r1936287 - r1936285;
double r1936296 = r1936285 + r1936286;
double r1936297 = r1936296 * r1936290;
double r1936298 = -r1936297;
double r1936299 = exp(r1936298);
double r1936300 = r1936295 * r1936299;
double r1936301 = r1936294 - r1936300;
double r1936302 = 2.0;
double r1936303 = r1936301 / r1936302;
return r1936303;
}
double f(double x, double eps) {
double r1936304 = x;
double r1936305 = eps;
double r1936306 = 1.0;
double r1936307 = r1936305 + r1936306;
double r1936308 = -r1936307;
double r1936309 = r1936304 * r1936308;
double r1936310 = exp(r1936309);
double r1936311 = r1936305 - r1936306;
double r1936312 = r1936311 * r1936304;
double r1936313 = exp(r1936312);
double r1936314 = r1936313 / r1936305;
double r1936315 = r1936310 / r1936305;
double r1936316 = r1936314 - r1936315;
double r1936317 = r1936316 + r1936313;
double r1936318 = r1936306 * r1936317;
double r1936319 = fma(r1936310, r1936306, r1936318);
double r1936320 = 2.0;
double r1936321 = r1936319 / r1936320;
return r1936321;
}



Bits error versus x



Bits error versus eps
Initial program 29.0
Taylor expanded around inf 29.0
Simplified24.4
rmApplied associate--l+0.9
Final simplification0.9
herbie shell --seed 2019174 +o rules:numerics
(FPCore (x eps)
:name "NMSE Section 6.1 mentioned, A"
(/ (- (* (+ 1.0 (/ 1.0 eps)) (exp (- (* (- 1.0 eps) x)))) (* (- (/ 1.0 eps) 1.0) (exp (- (* (+ 1.0 eps) x))))) 2.0))