Average Error: 29.5 → 1.1
Time: 35.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 1.9334006562055708:\\ \;\;\;\;\frac{\left(2 - x \cdot x\right) + \left(\left(x \cdot x\right) \cdot x\right) \cdot \frac{2}{3}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{e^{\left(-1 + \varepsilon\right) \cdot x} + \left(\frac{e^{\left(-1 + \varepsilon\right) \cdot x}}{\varepsilon} - \left(\frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon} - e^{x \cdot \left(-1 - \varepsilon\right)}\right)\right)}{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 1.9334006562055708:\\
\;\;\;\;\frac{\left(2 - x \cdot x\right) + \left(\left(x \cdot x\right) \cdot x\right) \cdot \frac{2}{3}}{2}\\

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

\end{array}
double f(double x, double eps) {
        double r2549950 = 1.0;
        double r2549951 = eps;
        double r2549952 = r2549950 / r2549951;
        double r2549953 = r2549950 + r2549952;
        double r2549954 = r2549950 - r2549951;
        double r2549955 = x;
        double r2549956 = r2549954 * r2549955;
        double r2549957 = -r2549956;
        double r2549958 = exp(r2549957);
        double r2549959 = r2549953 * r2549958;
        double r2549960 = r2549952 - r2549950;
        double r2549961 = r2549950 + r2549951;
        double r2549962 = r2549961 * r2549955;
        double r2549963 = -r2549962;
        double r2549964 = exp(r2549963);
        double r2549965 = r2549960 * r2549964;
        double r2549966 = r2549959 - r2549965;
        double r2549967 = 2.0;
        double r2549968 = r2549966 / r2549967;
        return r2549968;
}

double f(double x, double eps) {
        double r2549969 = x;
        double r2549970 = 1.9334006562055708;
        bool r2549971 = r2549969 <= r2549970;
        double r2549972 = 2.0;
        double r2549973 = r2549969 * r2549969;
        double r2549974 = r2549972 - r2549973;
        double r2549975 = r2549973 * r2549969;
        double r2549976 = 0.6666666666666666;
        double r2549977 = r2549975 * r2549976;
        double r2549978 = r2549974 + r2549977;
        double r2549979 = r2549978 / r2549972;
        double r2549980 = -1.0;
        double r2549981 = eps;
        double r2549982 = r2549980 + r2549981;
        double r2549983 = r2549982 * r2549969;
        double r2549984 = exp(r2549983);
        double r2549985 = r2549984 / r2549981;
        double r2549986 = r2549980 - r2549981;
        double r2549987 = r2549969 * r2549986;
        double r2549988 = exp(r2549987);
        double r2549989 = r2549988 / r2549981;
        double r2549990 = r2549989 - r2549988;
        double r2549991 = r2549985 - r2549990;
        double r2549992 = r2549984 + r2549991;
        double r2549993 = r2549992 / r2549972;
        double r2549994 = r2549971 ? r2549979 : r2549993;
        return r2549994;
}

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 < 1.9334006562055708

    1. Initial program 39.0

      \[\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. Simplified39.0

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

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

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

    if 1.9334006562055708 < x

    1. Initial program 0.6

      \[\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. Simplified0.6

      \[\leadsto \color{blue}{\frac{\left(e^{\left(\varepsilon + -1\right) \cdot x} + \frac{e^{\left(\varepsilon + -1\right) \cdot x}}{\varepsilon}\right) - \left(\frac{e^{\left(-1 - \varepsilon\right) \cdot x}}{\varepsilon} - e^{\left(-1 - \varepsilon\right) \cdot x}\right)}{2}}\]
    3. Using strategy rm
    4. Applied associate--l+0.5

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

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

Reproduce

herbie shell --seed 2019163 
(FPCore (x eps)
  :name "NMSE Section 6.1 mentioned, A"
  (/ (- (* (+ 1 (/ 1 eps)) (exp (- (* (- 1 eps) x)))) (* (- (/ 1 eps) 1) (exp (- (* (+ 1 eps) x))))) 2))