\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 326.6122928500697639719874132424592971802:\\
\;\;\;\;\frac{\left(0.6666666666666667406815349750104360282421 \cdot {x}^{3} + 2\right) - 1 \cdot {x}^{2}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(1 + \frac{1}{\varepsilon}\right) \cdot e^{-\left(1 - \varepsilon\right) \cdot x} - \left(\sqrt[3]{\left(\frac{1}{\varepsilon} - 1\right) \cdot e^{-\left(1 + \varepsilon\right) \cdot x}} \cdot \sqrt[3]{\left(\frac{1}{\varepsilon} - 1\right) \cdot e^{-\left(1 + \varepsilon\right) \cdot x}}\right) \cdot \sqrt[3]{\left(\frac{1}{\varepsilon} - 1\right) \cdot e^{-\left(1 + \varepsilon\right) \cdot x}}}{2}\\
\end{array}double f(double x, double eps) {
double r445092 = 1.0;
double r445093 = eps;
double r445094 = r445092 / r445093;
double r445095 = r445092 + r445094;
double r445096 = r445092 - r445093;
double r445097 = x;
double r445098 = r445096 * r445097;
double r445099 = -r445098;
double r445100 = exp(r445099);
double r445101 = r445095 * r445100;
double r445102 = r445094 - r445092;
double r445103 = r445092 + r445093;
double r445104 = r445103 * r445097;
double r445105 = -r445104;
double r445106 = exp(r445105);
double r445107 = r445102 * r445106;
double r445108 = r445101 - r445107;
double r445109 = 2.0;
double r445110 = r445108 / r445109;
return r445110;
}
double f(double x, double eps) {
double r445111 = x;
double r445112 = 326.61229285006976;
bool r445113 = r445111 <= r445112;
double r445114 = 0.6666666666666667;
double r445115 = 3.0;
double r445116 = pow(r445111, r445115);
double r445117 = r445114 * r445116;
double r445118 = 2.0;
double r445119 = r445117 + r445118;
double r445120 = 1.0;
double r445121 = 2.0;
double r445122 = pow(r445111, r445121);
double r445123 = r445120 * r445122;
double r445124 = r445119 - r445123;
double r445125 = r445124 / r445118;
double r445126 = eps;
double r445127 = r445120 / r445126;
double r445128 = r445120 + r445127;
double r445129 = r445120 - r445126;
double r445130 = r445129 * r445111;
double r445131 = -r445130;
double r445132 = exp(r445131);
double r445133 = r445128 * r445132;
double r445134 = r445127 - r445120;
double r445135 = r445120 + r445126;
double r445136 = r445135 * r445111;
double r445137 = -r445136;
double r445138 = exp(r445137);
double r445139 = r445134 * r445138;
double r445140 = cbrt(r445139);
double r445141 = r445140 * r445140;
double r445142 = r445141 * r445140;
double r445143 = r445133 - r445142;
double r445144 = r445143 / r445118;
double r445145 = r445113 ? r445125 : r445144;
return r445145;
}



Bits error versus x



Bits error versus eps
Results
if x < 326.61229285006976Initial program 39.5
Taylor expanded around 0 1.2
if 326.61229285006976 < x Initial program 0.1
rmApplied add-cube-cbrt0.1
Final simplification0.9
herbie shell --seed 2019212
(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))