Average Error: 29.9 → 1.1
Time: 19.1s
Precision: 64
\[\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 174.50277220888506:\\ \;\;\;\;\frac{\left(0.66666666666666674 \cdot {x}^{3} + 2\right) - 1 \cdot {x}^{2}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{1 \cdot \left(\left(e^{-x \cdot \left(1 + \varepsilon\right)} + e^{x \cdot \left(\varepsilon - 1\right)}\right) + \frac{e^{x \cdot \left(\varepsilon - 1\right)}}{\varepsilon}\right) - \frac{e^{-x \cdot \left(1 + \varepsilon\right)}}{\varepsilon} \cdot 1}{2}\\ \end{array}\]
\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 174.50277220888506:\\
\;\;\;\;\frac{\left(0.66666666666666674 \cdot {x}^{3} + 2\right) - 1 \cdot {x}^{2}}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{1 \cdot \left(\left(e^{-x \cdot \left(1 + \varepsilon\right)} + e^{x \cdot \left(\varepsilon - 1\right)}\right) + \frac{e^{x \cdot \left(\varepsilon - 1\right)}}{\varepsilon}\right) - \frac{e^{-x \cdot \left(1 + \varepsilon\right)}}{\varepsilon} \cdot 1}{2}\\

\end{array}
double f(double x, double eps) {
        double r40883 = 1.0;
        double r40884 = eps;
        double r40885 = r40883 / r40884;
        double r40886 = r40883 + r40885;
        double r40887 = r40883 - r40884;
        double r40888 = x;
        double r40889 = r40887 * r40888;
        double r40890 = -r40889;
        double r40891 = exp(r40890);
        double r40892 = r40886 * r40891;
        double r40893 = r40885 - r40883;
        double r40894 = r40883 + r40884;
        double r40895 = r40894 * r40888;
        double r40896 = -r40895;
        double r40897 = exp(r40896);
        double r40898 = r40893 * r40897;
        double r40899 = r40892 - r40898;
        double r40900 = 2.0;
        double r40901 = r40899 / r40900;
        return r40901;
}

double f(double x, double eps) {
        double r40902 = x;
        double r40903 = 174.50277220888506;
        bool r40904 = r40902 <= r40903;
        double r40905 = 0.6666666666666667;
        double r40906 = 3.0;
        double r40907 = pow(r40902, r40906);
        double r40908 = r40905 * r40907;
        double r40909 = 2.0;
        double r40910 = r40908 + r40909;
        double r40911 = 1.0;
        double r40912 = 2.0;
        double r40913 = pow(r40902, r40912);
        double r40914 = r40911 * r40913;
        double r40915 = r40910 - r40914;
        double r40916 = r40915 / r40909;
        double r40917 = eps;
        double r40918 = r40911 + r40917;
        double r40919 = r40902 * r40918;
        double r40920 = -r40919;
        double r40921 = exp(r40920);
        double r40922 = r40917 - r40911;
        double r40923 = r40902 * r40922;
        double r40924 = exp(r40923);
        double r40925 = r40921 + r40924;
        double r40926 = r40924 / r40917;
        double r40927 = r40925 + r40926;
        double r40928 = r40911 * r40927;
        double r40929 = r40921 / r40917;
        double r40930 = r40929 * r40911;
        double r40931 = r40928 - r40930;
        double r40932 = r40931 / r40909;
        double r40933 = r40904 ? r40916 : r40932;
        return r40933;
}

Error

Bits error versus x

Bits error versus eps

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if x < 174.50277220888506

    1. Initial program 39.2

      \[\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}\]
    2. Taylor expanded around 0 1.4

      \[\leadsto \frac{\color{blue}{\left(0.66666666666666674 \cdot {x}^{3} + 2\right) - 1 \cdot {x}^{2}}}{2}\]

    if 174.50277220888506 < x

    1. Initial program 0.1

      \[\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}\]
    2. Taylor expanded around inf 0.1

      \[\leadsto \frac{\color{blue}{\left(1 \cdot \frac{e^{x \cdot \varepsilon - 1 \cdot x}}{\varepsilon} + \left(1 \cdot e^{-\left(x \cdot \varepsilon + 1 \cdot x\right)} + 1 \cdot e^{x \cdot \varepsilon - 1 \cdot x}\right)\right) - 1 \cdot \frac{e^{-\left(x \cdot \varepsilon + 1 \cdot x\right)}}{\varepsilon}}}{2}\]
    3. Simplified0.1

      \[\leadsto \frac{\color{blue}{1 \cdot \left(\left(e^{-x \cdot \left(1 + \varepsilon\right)} + e^{x \cdot \left(\varepsilon - 1\right)}\right) + \frac{e^{x \cdot \left(\varepsilon - 1\right)}}{\varepsilon}\right) - \frac{e^{-x \cdot \left(1 + \varepsilon\right)}}{\varepsilon} \cdot 1}}{2}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification1.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le 174.50277220888506:\\ \;\;\;\;\frac{\left(0.66666666666666674 \cdot {x}^{3} + 2\right) - 1 \cdot {x}^{2}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{1 \cdot \left(\left(e^{-x \cdot \left(1 + \varepsilon\right)} + e^{x \cdot \left(\varepsilon - 1\right)}\right) + \frac{e^{x \cdot \left(\varepsilon - 1\right)}}{\varepsilon}\right) - \frac{e^{-x \cdot \left(1 + \varepsilon\right)}}{\varepsilon} \cdot 1}{2}\\ \end{array}\]

Reproduce

herbie shell --seed 2019198 
(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))