\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 332.94412108397438:\\
\;\;\;\;\frac{\left(0.66666666666666674 \cdot {x}^{3} + 2\right) - 1 \cdot {x}^{2}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(\sqrt[3]{1 \cdot \left(\left(\left(e^{-x \cdot \left(\varepsilon + 1\right)} + e^{x \cdot \left(\varepsilon - 1\right)}\right) - \frac{e^{-x \cdot \left(\varepsilon + 1\right)}}{\varepsilon}\right) + \frac{e^{\left(\varepsilon - 1\right) \cdot x}}{\varepsilon}\right)} \cdot \sqrt[3]{1 \cdot \left(\left(\left(e^{-x \cdot \left(\varepsilon + 1\right)} + e^{x \cdot \left(\varepsilon - 1\right)}\right) - \frac{e^{-x \cdot \left(\varepsilon + 1\right)}}{\varepsilon}\right) + \frac{e^{\left(\varepsilon - 1\right) \cdot x}}{\varepsilon}\right)}\right) \cdot \sqrt[3]{1 \cdot \left(\left(\left(e^{-x \cdot \left(\varepsilon + 1\right)} + e^{x \cdot \left(\varepsilon - 1\right)}\right) - \frac{e^{-x \cdot \left(\varepsilon + 1\right)}}{\varepsilon}\right) + \frac{e^{\left(\varepsilon - 1\right) \cdot x}}{\varepsilon}\right)}}{2}\\
\end{array}double f(double x, double eps) {
double r42754 = 1.0;
double r42755 = eps;
double r42756 = r42754 / r42755;
double r42757 = r42754 + r42756;
double r42758 = r42754 - r42755;
double r42759 = x;
double r42760 = r42758 * r42759;
double r42761 = -r42760;
double r42762 = exp(r42761);
double r42763 = r42757 * r42762;
double r42764 = r42756 - r42754;
double r42765 = r42754 + r42755;
double r42766 = r42765 * r42759;
double r42767 = -r42766;
double r42768 = exp(r42767);
double r42769 = r42764 * r42768;
double r42770 = r42763 - r42769;
double r42771 = 2.0;
double r42772 = r42770 / r42771;
return r42772;
}
double f(double x, double eps) {
double r42773 = x;
double r42774 = 332.9441210839744;
bool r42775 = r42773 <= r42774;
double r42776 = 0.6666666666666667;
double r42777 = 3.0;
double r42778 = pow(r42773, r42777);
double r42779 = r42776 * r42778;
double r42780 = 2.0;
double r42781 = r42779 + r42780;
double r42782 = 1.0;
double r42783 = 2.0;
double r42784 = pow(r42773, r42783);
double r42785 = r42782 * r42784;
double r42786 = r42781 - r42785;
double r42787 = r42786 / r42780;
double r42788 = eps;
double r42789 = r42788 + r42782;
double r42790 = r42773 * r42789;
double r42791 = -r42790;
double r42792 = exp(r42791);
double r42793 = r42788 - r42782;
double r42794 = r42773 * r42793;
double r42795 = exp(r42794);
double r42796 = r42792 + r42795;
double r42797 = r42792 / r42788;
double r42798 = r42796 - r42797;
double r42799 = r42793 * r42773;
double r42800 = exp(r42799);
double r42801 = r42800 / r42788;
double r42802 = r42798 + r42801;
double r42803 = r42782 * r42802;
double r42804 = cbrt(r42803);
double r42805 = r42804 * r42804;
double r42806 = r42805 * r42804;
double r42807 = r42806 / r42780;
double r42808 = r42775 ? r42787 : r42807;
return r42808;
}



Bits error versus x



Bits error versus eps
Results
if x < 332.9441210839744Initial program 39.4
Taylor expanded around 0 1.4
if 332.9441210839744 < x Initial program 0.0
Taylor expanded around inf 0.0
Simplified0.0
rmApplied add-cube-cbrt0.0
Simplified0.0
Simplified0.0
Final simplification1.1
herbie shell --seed 2019199
(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))