\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}\left(\frac{0.5}{e^{x \cdot \left(1 - \varepsilon\right)}} - \left(\frac{\frac{0.5}{\varepsilon}}{e^{x \cdot \left(\varepsilon + 1\right)}} - \frac{\frac{0.5}{\varepsilon}}{e^{x \cdot \left(1 - \varepsilon\right)}}\right)\right) + \frac{\frac{1}{e^{\left(1 + \varepsilon\right) \cdot x}}}{2}double f(double x, double eps) {
double r59524 = 1.0;
double r59525 = eps;
double r59526 = r59524 / r59525;
double r59527 = r59524 + r59526;
double r59528 = r59524 - r59525;
double r59529 = x;
double r59530 = r59528 * r59529;
double r59531 = -r59530;
double r59532 = exp(r59531);
double r59533 = r59527 * r59532;
double r59534 = r59526 - r59524;
double r59535 = r59524 + r59525;
double r59536 = r59535 * r59529;
double r59537 = -r59536;
double r59538 = exp(r59537);
double r59539 = r59534 * r59538;
double r59540 = r59533 - r59539;
double r59541 = 2.0;
double r59542 = r59540 / r59541;
return r59542;
}
double f(double x, double eps) {
double r59543 = 0.5;
double r59544 = x;
double r59545 = 1.0;
double r59546 = eps;
double r59547 = r59545 - r59546;
double r59548 = r59544 * r59547;
double r59549 = exp(r59548);
double r59550 = r59543 / r59549;
double r59551 = r59543 / r59546;
double r59552 = r59546 + r59545;
double r59553 = r59544 * r59552;
double r59554 = exp(r59553);
double r59555 = r59551 / r59554;
double r59556 = r59551 / r59549;
double r59557 = r59555 - r59556;
double r59558 = r59550 - r59557;
double r59559 = r59545 + r59546;
double r59560 = r59559 * r59544;
double r59561 = exp(r59560);
double r59562 = r59545 / r59561;
double r59563 = 2.0;
double r59564 = r59562 / r59563;
double r59565 = r59558 + r59564;
return r59565;
}



Bits error versus x



Bits error versus eps
Results
Initial program 29.2
Simplified29.2
rmApplied div-sub29.2
Applied div-sub29.2
Applied associate--r-24.6
Taylor expanded around inf 24.6
Simplified0.9
Final simplification0.9
herbie shell --seed 2019291
(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))