\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 355.4869306141758:\\
\;\;\;\;\frac{\sqrt[3]{\left((\left(\left(x \cdot x\right) \cdot x\right) \cdot \frac{2}{3} + \left(2 - x \cdot x\right))_* \cdot (\left(\left(x \cdot x\right) \cdot x\right) \cdot \frac{2}{3} + \left(2 - x \cdot x\right))_*\right) \cdot (\left(\left(x \cdot x\right) \cdot x\right) \cdot \frac{2}{3} + \left(2 - x \cdot x\right))_*}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(\sqrt[3]{\left(e^{\left(-1 + \varepsilon\right) \cdot x} + \frac{e^{\left(-1 + \varepsilon\right) \cdot x}}{\varepsilon}\right) - \left(\frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon} - e^{x \cdot \left(-1 - \varepsilon\right)}\right)} \cdot \sqrt[3]{\left(e^{\left(-1 + \varepsilon\right) \cdot x} + \frac{e^{\left(-1 + \varepsilon\right) \cdot x}}{\varepsilon}\right) - \left(\frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon} - e^{x \cdot \left(-1 - \varepsilon\right)}\right)}\right) \cdot \sqrt[3]{\left(e^{\left(-1 + \varepsilon\right) \cdot x} + \frac{e^{\left(-1 + \varepsilon\right) \cdot x}}{\varepsilon}\right) - \left(\frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon} - e^{x \cdot \left(-1 - \varepsilon\right)}\right)}}{2}\\
\end{array}double f(double x, double eps) {
double r6646024 = 1.0;
double r6646025 = eps;
double r6646026 = r6646024 / r6646025;
double r6646027 = r6646024 + r6646026;
double r6646028 = r6646024 - r6646025;
double r6646029 = x;
double r6646030 = r6646028 * r6646029;
double r6646031 = -r6646030;
double r6646032 = exp(r6646031);
double r6646033 = r6646027 * r6646032;
double r6646034 = r6646026 - r6646024;
double r6646035 = r6646024 + r6646025;
double r6646036 = r6646035 * r6646029;
double r6646037 = -r6646036;
double r6646038 = exp(r6646037);
double r6646039 = r6646034 * r6646038;
double r6646040 = r6646033 - r6646039;
double r6646041 = 2.0;
double r6646042 = r6646040 / r6646041;
return r6646042;
}
double f(double x, double eps) {
double r6646043 = x;
double r6646044 = 355.4869306141758;
bool r6646045 = r6646043 <= r6646044;
double r6646046 = r6646043 * r6646043;
double r6646047 = r6646046 * r6646043;
double r6646048 = 0.6666666666666666;
double r6646049 = 2.0;
double r6646050 = r6646049 - r6646046;
double r6646051 = fma(r6646047, r6646048, r6646050);
double r6646052 = r6646051 * r6646051;
double r6646053 = r6646052 * r6646051;
double r6646054 = cbrt(r6646053);
double r6646055 = r6646054 / r6646049;
double r6646056 = -1.0;
double r6646057 = eps;
double r6646058 = r6646056 + r6646057;
double r6646059 = r6646058 * r6646043;
double r6646060 = exp(r6646059);
double r6646061 = r6646060 / r6646057;
double r6646062 = r6646060 + r6646061;
double r6646063 = r6646056 - r6646057;
double r6646064 = r6646043 * r6646063;
double r6646065 = exp(r6646064);
double r6646066 = r6646065 / r6646057;
double r6646067 = r6646066 - r6646065;
double r6646068 = r6646062 - r6646067;
double r6646069 = cbrt(r6646068);
double r6646070 = r6646069 * r6646069;
double r6646071 = r6646070 * r6646069;
double r6646072 = r6646071 / r6646049;
double r6646073 = r6646045 ? r6646055 : r6646072;
return r6646073;
}



Bits error versus x



Bits error versus eps
if x < 355.4869306141758Initial program 39.2
Simplified39.2
Taylor expanded around 0 1.2
Simplified1.2
rmApplied add-cbrt-cube1.2
if 355.4869306141758 < x Initial program 0.0
Simplified0.0
rmApplied add-cube-cbrt0.0
Final simplification0.9
herbie shell --seed 2019104 +o rules:numerics
(FPCore (x eps)
:name "NMSE Section 6.1 mentioned, A"
(/ (- (* (+ 1 (/ 1 eps)) (exp (- (* (- 1 eps) x)))) (* (- (/ 1 eps) 1) (exp (- (* (+ 1 eps) x))))) 2))