\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 243.384144202976728:\\
\;\;\;\;\frac{\frac{{\left(\left(\sqrt[3]{0.66666666666666674 \cdot {x}^{3}} \cdot \sqrt[3]{0.66666666666666674 \cdot {x}^{3}}\right) \cdot \sqrt[3]{0.66666666666666674 \cdot {x}^{3}}\right)}^{3} + {\left(2 - 1 \cdot {x}^{2}\right)}^{3}}{\left(2 - 1 \cdot {x}^{2}\right) \cdot \left(2 - 1 \cdot {x}^{2}\right) + \left(-\left(0.66666666666666674 \cdot {x}^{3}\right) \cdot \left(2 - \left(1 \cdot {x}^{2} + 0.66666666666666674 \cdot {x}^{3}\right)\right)\right)}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(1 + \frac{1}{\varepsilon}\right) \cdot e^{-\left(1 - \varepsilon\right) \cdot x} - 1 \cdot \left(\frac{e^{-\left(x \cdot \varepsilon + 1 \cdot x\right)}}{\varepsilon} - e^{-\left(x \cdot \varepsilon + 1 \cdot x\right)}\right)}{2}\\
\end{array}double f(double x, double eps) {
double r39151 = 1.0;
double r39152 = eps;
double r39153 = r39151 / r39152;
double r39154 = r39151 + r39153;
double r39155 = r39151 - r39152;
double r39156 = x;
double r39157 = r39155 * r39156;
double r39158 = -r39157;
double r39159 = exp(r39158);
double r39160 = r39154 * r39159;
double r39161 = r39153 - r39151;
double r39162 = r39151 + r39152;
double r39163 = r39162 * r39156;
double r39164 = -r39163;
double r39165 = exp(r39164);
double r39166 = r39161 * r39165;
double r39167 = r39160 - r39166;
double r39168 = 2.0;
double r39169 = r39167 / r39168;
return r39169;
}
double f(double x, double eps) {
double r39170 = x;
double r39171 = 243.38414420297673;
bool r39172 = r39170 <= r39171;
double r39173 = 0.6666666666666667;
double r39174 = 3.0;
double r39175 = pow(r39170, r39174);
double r39176 = r39173 * r39175;
double r39177 = cbrt(r39176);
double r39178 = r39177 * r39177;
double r39179 = r39178 * r39177;
double r39180 = pow(r39179, r39174);
double r39181 = 2.0;
double r39182 = 1.0;
double r39183 = 2.0;
double r39184 = pow(r39170, r39183);
double r39185 = r39182 * r39184;
double r39186 = r39181 - r39185;
double r39187 = pow(r39186, r39174);
double r39188 = r39180 + r39187;
double r39189 = r39186 * r39186;
double r39190 = r39185 + r39176;
double r39191 = r39181 - r39190;
double r39192 = r39176 * r39191;
double r39193 = -r39192;
double r39194 = r39189 + r39193;
double r39195 = r39188 / r39194;
double r39196 = r39195 / r39181;
double r39197 = eps;
double r39198 = r39182 / r39197;
double r39199 = r39182 + r39198;
double r39200 = r39182 - r39197;
double r39201 = r39200 * r39170;
double r39202 = -r39201;
double r39203 = exp(r39202);
double r39204 = r39199 * r39203;
double r39205 = r39170 * r39197;
double r39206 = r39182 * r39170;
double r39207 = r39205 + r39206;
double r39208 = -r39207;
double r39209 = exp(r39208);
double r39210 = r39209 / r39197;
double r39211 = r39210 - r39209;
double r39212 = r39182 * r39211;
double r39213 = r39204 - r39212;
double r39214 = r39213 / r39181;
double r39215 = r39172 ? r39196 : r39214;
return r39215;
}



Bits error versus x



Bits error versus eps
Results
if x < 243.38414420297673Initial program 39.2
Taylor expanded around 0 1.4
rmApplied associate--l+1.4
rmApplied add-cube-cbrt1.4
rmApplied flip3-+1.4
Simplified1.4
if 243.38414420297673 < x Initial program 0.0
Taylor expanded around inf 0.1
Simplified0.1
Final simplification1.1
herbie shell --seed 2020046
(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))