\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 1.47988680957016616383087846686716915201 \cdot 10^{-6}:\\
\;\;\;\;\frac{2 - \left(1 \cdot \left(x \cdot x\right) + \frac{2.77555756156289135105907917022705078125 \cdot 10^{-17}}{\frac{\varepsilon}{\log \left(e^{\left(x \cdot x\right) \cdot x}\right)}}\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1 - \frac{1}{\varepsilon}}{e^{x \cdot \left(\varepsilon + 1\right)}} + \left(\frac{1}{\varepsilon} + 1\right) \cdot \sqrt[3]{e^{\left(\varepsilon - 1\right) \cdot x} \cdot \left(e^{\left(\varepsilon - 1\right) \cdot x} \cdot e^{\left(\varepsilon - 1\right) \cdot x}\right)}}{2}\\
\end{array}double f(double x, double eps) {
double r2518187 = 1.0;
double r2518188 = eps;
double r2518189 = r2518187 / r2518188;
double r2518190 = r2518187 + r2518189;
double r2518191 = r2518187 - r2518188;
double r2518192 = x;
double r2518193 = r2518191 * r2518192;
double r2518194 = -r2518193;
double r2518195 = exp(r2518194);
double r2518196 = r2518190 * r2518195;
double r2518197 = r2518189 - r2518187;
double r2518198 = r2518187 + r2518188;
double r2518199 = r2518198 * r2518192;
double r2518200 = -r2518199;
double r2518201 = exp(r2518200);
double r2518202 = r2518197 * r2518201;
double r2518203 = r2518196 - r2518202;
double r2518204 = 2.0;
double r2518205 = r2518203 / r2518204;
return r2518205;
}
double f(double x, double eps) {
double r2518206 = x;
double r2518207 = 1.4798868095701662e-06;
bool r2518208 = r2518206 <= r2518207;
double r2518209 = 2.0;
double r2518210 = 1.0;
double r2518211 = r2518206 * r2518206;
double r2518212 = r2518210 * r2518211;
double r2518213 = 2.7755575615628914e-17;
double r2518214 = eps;
double r2518215 = r2518211 * r2518206;
double r2518216 = exp(r2518215);
double r2518217 = log(r2518216);
double r2518218 = r2518214 / r2518217;
double r2518219 = r2518213 / r2518218;
double r2518220 = r2518212 + r2518219;
double r2518221 = r2518209 - r2518220;
double r2518222 = r2518221 / r2518209;
double r2518223 = r2518210 / r2518214;
double r2518224 = r2518210 - r2518223;
double r2518225 = r2518214 + r2518210;
double r2518226 = r2518206 * r2518225;
double r2518227 = exp(r2518226);
double r2518228 = r2518224 / r2518227;
double r2518229 = r2518223 + r2518210;
double r2518230 = r2518214 - r2518210;
double r2518231 = r2518230 * r2518206;
double r2518232 = exp(r2518231);
double r2518233 = r2518232 * r2518232;
double r2518234 = r2518232 * r2518233;
double r2518235 = cbrt(r2518234);
double r2518236 = r2518229 * r2518235;
double r2518237 = r2518228 + r2518236;
double r2518238 = r2518237 / r2518209;
double r2518239 = r2518208 ? r2518222 : r2518238;
return r2518239;
}



Bits error versus x



Bits error versus eps
Results
if x < 1.4798868095701662e-06Initial program 38.1
Simplified38.1
Taylor expanded around 0 7.2
Simplified7.2
rmApplied add-log-exp1.6
if 1.4798868095701662e-06 < x Initial program 1.7
Simplified1.7
rmApplied add-cbrt-cube1.7
Final simplification1.6
herbie shell --seed 2019168
(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))