\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 95.541640315829881:\\
\;\;\;\;\frac{\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}} + \left(2 - 1 \cdot {x}^{2}\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(1 + \frac{1}{\varepsilon}\right) \cdot \left(\left(\sqrt[3]{e^{-\left(1 - \varepsilon\right) \cdot x}} \cdot \sqrt[3]{e^{-\left(1 - \varepsilon\right) \cdot x}}\right) \cdot \sqrt[3]{e^{-\left(1 - \varepsilon\right) \cdot x}}\right) - \left(\frac{1}{\varepsilon} - 1\right) \cdot e^{-\left(1 + \varepsilon\right) \cdot x}}{2}\\
\end{array}double f(double x, double eps) {
double r33889 = 1.0;
double r33890 = eps;
double r33891 = r33889 / r33890;
double r33892 = r33889 + r33891;
double r33893 = r33889 - r33890;
double r33894 = x;
double r33895 = r33893 * r33894;
double r33896 = -r33895;
double r33897 = exp(r33896);
double r33898 = r33892 * r33897;
double r33899 = r33891 - r33889;
double r33900 = r33889 + r33890;
double r33901 = r33900 * r33894;
double r33902 = -r33901;
double r33903 = exp(r33902);
double r33904 = r33899 * r33903;
double r33905 = r33898 - r33904;
double r33906 = 2.0;
double r33907 = r33905 / r33906;
return r33907;
}
double f(double x, double eps) {
double r33908 = x;
double r33909 = 95.54164031582988;
bool r33910 = r33908 <= r33909;
double r33911 = 0.6666666666666667;
double r33912 = 3.0;
double r33913 = pow(r33908, r33912);
double r33914 = r33911 * r33913;
double r33915 = cbrt(r33914);
double r33916 = r33915 * r33915;
double r33917 = r33916 * r33915;
double r33918 = 2.0;
double r33919 = 1.0;
double r33920 = 2.0;
double r33921 = pow(r33908, r33920);
double r33922 = r33919 * r33921;
double r33923 = r33918 - r33922;
double r33924 = r33917 + r33923;
double r33925 = r33924 / r33918;
double r33926 = eps;
double r33927 = r33919 / r33926;
double r33928 = r33919 + r33927;
double r33929 = r33919 - r33926;
double r33930 = r33929 * r33908;
double r33931 = -r33930;
double r33932 = exp(r33931);
double r33933 = cbrt(r33932);
double r33934 = r33933 * r33933;
double r33935 = r33934 * r33933;
double r33936 = r33928 * r33935;
double r33937 = r33927 - r33919;
double r33938 = r33919 + r33926;
double r33939 = r33938 * r33908;
double r33940 = -r33939;
double r33941 = exp(r33940);
double r33942 = r33937 * r33941;
double r33943 = r33936 - r33942;
double r33944 = r33943 / r33918;
double r33945 = r33910 ? r33925 : r33944;
return r33945;
}



Bits error versus x



Bits error versus eps
Results
if x < 95.54164031582988Initial program 39.6
Taylor expanded around 0 1.3
rmApplied associate--l+1.3
rmApplied add-cube-cbrt1.3
if 95.54164031582988 < x Initial program 0.3
rmApplied add-cube-cbrt0.3
Final simplification1.0
herbie shell --seed 2020047
(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))