\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 r32664 = 1.0;
double r32665 = eps;
double r32666 = r32664 / r32665;
double r32667 = r32664 + r32666;
double r32668 = r32664 - r32665;
double r32669 = x;
double r32670 = r32668 * r32669;
double r32671 = -r32670;
double r32672 = exp(r32671);
double r32673 = r32667 * r32672;
double r32674 = r32666 - r32664;
double r32675 = r32664 + r32665;
double r32676 = r32675 * r32669;
double r32677 = -r32676;
double r32678 = exp(r32677);
double r32679 = r32674 * r32678;
double r32680 = r32673 - r32679;
double r32681 = 2.0;
double r32682 = r32680 / r32681;
return r32682;
}
double f(double x, double eps) {
double r32683 = 0.5;
double r32684 = x;
double r32685 = 1.0;
double r32686 = eps;
double r32687 = r32685 - r32686;
double r32688 = r32684 * r32687;
double r32689 = exp(r32688);
double r32690 = r32683 / r32689;
double r32691 = r32683 / r32686;
double r32692 = r32686 + r32685;
double r32693 = r32684 * r32692;
double r32694 = exp(r32693);
double r32695 = r32691 / r32694;
double r32696 = r32691 / r32689;
double r32697 = r32695 - r32696;
double r32698 = r32690 - r32697;
double r32699 = r32685 + r32686;
double r32700 = r32699 * r32684;
double r32701 = exp(r32700);
double r32702 = r32685 / r32701;
double r32703 = 2.0;
double r32704 = r32702 / r32703;
double r32705 = r32698 + r32704;
return r32705;
}



Bits error versus x



Bits error versus eps
Results
Initial program 29.6
Simplified29.6
rmApplied div-sub29.6
Applied div-sub29.6
Applied associate--r-24.9
Taylor expanded around inf 24.8
Simplified1.0
Final simplification1.0
herbie shell --seed 2019298
(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))