\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{1 \cdot e^{-\left(x \cdot \varepsilon + 1 \cdot x\right)} + 1 \cdot \left(e^{x \cdot \varepsilon - 1 \cdot x} + \left(\frac{e^{x \cdot \varepsilon - 1 \cdot x}}{\varepsilon} - \frac{e^{-\left(x \cdot \varepsilon + 1 \cdot x\right)}}{\varepsilon}\right)\right)}{2}double f(double x, double eps) {
double r2942135 = 1.0;
double r2942136 = eps;
double r2942137 = r2942135 / r2942136;
double r2942138 = r2942135 + r2942137;
double r2942139 = r2942135 - r2942136;
double r2942140 = x;
double r2942141 = r2942139 * r2942140;
double r2942142 = -r2942141;
double r2942143 = exp(r2942142);
double r2942144 = r2942138 * r2942143;
double r2942145 = r2942137 - r2942135;
double r2942146 = r2942135 + r2942136;
double r2942147 = r2942146 * r2942140;
double r2942148 = -r2942147;
double r2942149 = exp(r2942148);
double r2942150 = r2942145 * r2942149;
double r2942151 = r2942144 - r2942150;
double r2942152 = 2.0;
double r2942153 = r2942151 / r2942152;
return r2942153;
}
double f(double x, double eps) {
double r2942154 = 1.0;
double r2942155 = x;
double r2942156 = eps;
double r2942157 = r2942155 * r2942156;
double r2942158 = r2942154 * r2942155;
double r2942159 = r2942157 + r2942158;
double r2942160 = -r2942159;
double r2942161 = exp(r2942160);
double r2942162 = r2942154 * r2942161;
double r2942163 = r2942157 - r2942158;
double r2942164 = exp(r2942163);
double r2942165 = r2942164 / r2942156;
double r2942166 = r2942161 / r2942156;
double r2942167 = r2942165 - r2942166;
double r2942168 = r2942164 + r2942167;
double r2942169 = r2942154 * r2942168;
double r2942170 = r2942162 + r2942169;
double r2942171 = 2.0;
double r2942172 = r2942170 / r2942171;
return r2942172;
}



Bits error versus x



Bits error versus eps
Results
Initial program 29.0
Taylor expanded around inf 29.0
Simplified24.4
rmApplied associate--l+0.9
Final simplification0.9
herbie shell --seed 2019174
(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))