\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 299.64739672789676:\\
\;\;\;\;1 + \left({x}^{2} \cdot \left(\left(\sqrt{{\left(\sqrt[3]{\sqrt[3]{x \cdot 0.33333333333333337 - 0.5}}\right)}^{4}} \cdot \sqrt{{\left(\sqrt[3]{\sqrt[3]{x \cdot 0.33333333333333337 - 0.5}}\right)}^{4}}\right) \cdot \left(\sqrt[3]{\sqrt[3]{x \cdot 0.33333333333333337 - 0.5}} \cdot \sqrt[3]{\sqrt[3]{x \cdot 0.33333333333333337 - 0.5}}\right)\right)\right) \cdot \sqrt[3]{x \cdot 0.33333333333333337 - 0.5}\\
\mathbf{else}:\\
\;\;\;\;e^{\log \left(\frac{\frac{1 + \frac{1}{\varepsilon}}{e^{\left(1 - \varepsilon\right) \cdot x}}}{2} - \frac{\frac{\frac{1}{\varepsilon} - 1}{e^{\left(1 + \varepsilon\right) \cdot x}}}{2}\right)}\\
\end{array}double f(double x, double eps) {
double r40232 = 1.0;
double r40233 = eps;
double r40234 = r40232 / r40233;
double r40235 = r40232 + r40234;
double r40236 = r40232 - r40233;
double r40237 = x;
double r40238 = r40236 * r40237;
double r40239 = -r40238;
double r40240 = exp(r40239);
double r40241 = r40235 * r40240;
double r40242 = r40234 - r40232;
double r40243 = r40232 + r40233;
double r40244 = r40243 * r40237;
double r40245 = -r40244;
double r40246 = exp(r40245);
double r40247 = r40242 * r40246;
double r40248 = r40241 - r40247;
double r40249 = 2.0;
double r40250 = r40248 / r40249;
return r40250;
}
double f(double x, double eps) {
double r40251 = x;
double r40252 = 299.64739672789676;
bool r40253 = r40251 <= r40252;
double r40254 = 1.0;
double r40255 = 2.0;
double r40256 = pow(r40251, r40255);
double r40257 = 0.33333333333333337;
double r40258 = r40251 * r40257;
double r40259 = 0.5;
double r40260 = r40258 - r40259;
double r40261 = cbrt(r40260);
double r40262 = cbrt(r40261);
double r40263 = 4.0;
double r40264 = pow(r40262, r40263);
double r40265 = sqrt(r40264);
double r40266 = r40265 * r40265;
double r40267 = r40262 * r40262;
double r40268 = r40266 * r40267;
double r40269 = r40256 * r40268;
double r40270 = r40269 * r40261;
double r40271 = r40254 + r40270;
double r40272 = eps;
double r40273 = r40254 / r40272;
double r40274 = r40254 + r40273;
double r40275 = r40254 - r40272;
double r40276 = r40275 * r40251;
double r40277 = exp(r40276);
double r40278 = r40274 / r40277;
double r40279 = 2.0;
double r40280 = r40278 / r40279;
double r40281 = r40273 - r40254;
double r40282 = r40254 + r40272;
double r40283 = r40282 * r40251;
double r40284 = exp(r40283);
double r40285 = r40281 / r40284;
double r40286 = r40285 / r40279;
double r40287 = r40280 - r40286;
double r40288 = log(r40287);
double r40289 = exp(r40288);
double r40290 = r40253 ? r40271 : r40289;
return r40290;
}



Bits error versus x



Bits error versus eps
Results
if x < 299.64739672789676Initial program 38.9
Simplified38.9
Taylor expanded around 0 1.2
Simplified1.2
rmApplied add-cube-cbrt1.2
Applied associate-*r*1.2
rmApplied add-cube-cbrt1.2
Applied add-cube-cbrt1.2
Applied swap-sqr1.2
Simplified1.2
rmApplied add-sqr-sqrt1.2
if 299.64739672789676 < x Initial program 0.1
Simplified0.1
rmApplied add-exp-log0.1
Final simplification0.9
herbie shell --seed 2020065
(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))