Average Error: 29.3 → 1.0
Time: 24.2s
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 15.69605451446852306673918064916506409645:\\ \;\;\;\;\frac{\frac{1}{e^{\left(1 + \varepsilon\right) \cdot x}} - \left(\varepsilon \cdot \left(-1 \cdot x\right) - \left(1 \cdot x + 1\right)\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{e^{\left(\varepsilon - 1\right) \cdot x} \cdot \left(1 + \frac{1}{\varepsilon}\right) + \frac{1 - \frac{1}{\varepsilon}}{\sqrt[3]{e^{\left(1 + \varepsilon\right) \cdot x}} \cdot \left(\sqrt[3]{e^{\left(1 + \varepsilon\right) \cdot x}} \cdot \sqrt[3]{e^{\left(1 + \varepsilon\right) \cdot x}}\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 15.69605451446852306673918064916506409645:\\
\;\;\;\;\frac{\frac{1}{e^{\left(1 + \varepsilon\right) \cdot x}} - \left(\varepsilon \cdot \left(-1 \cdot x\right) - \left(1 \cdot x + 1\right)\right)}{2}\\

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

\end{array}
double f(double x, double eps) {
        double r2546971 = 1.0;
        double r2546972 = eps;
        double r2546973 = r2546971 / r2546972;
        double r2546974 = r2546971 + r2546973;
        double r2546975 = r2546971 - r2546972;
        double r2546976 = x;
        double r2546977 = r2546975 * r2546976;
        double r2546978 = -r2546977;
        double r2546979 = exp(r2546978);
        double r2546980 = r2546974 * r2546979;
        double r2546981 = r2546973 - r2546971;
        double r2546982 = r2546971 + r2546972;
        double r2546983 = r2546982 * r2546976;
        double r2546984 = -r2546983;
        double r2546985 = exp(r2546984);
        double r2546986 = r2546981 * r2546985;
        double r2546987 = r2546980 - r2546986;
        double r2546988 = 2.0;
        double r2546989 = r2546987 / r2546988;
        return r2546989;
}

double f(double x, double eps) {
        double r2546990 = x;
        double r2546991 = 15.696054514468523;
        bool r2546992 = r2546990 <= r2546991;
        double r2546993 = 1.0;
        double r2546994 = eps;
        double r2546995 = r2546993 + r2546994;
        double r2546996 = r2546995 * r2546990;
        double r2546997 = exp(r2546996);
        double r2546998 = r2546993 / r2546997;
        double r2546999 = r2546993 * r2546990;
        double r2547000 = -r2546999;
        double r2547001 = r2546994 * r2547000;
        double r2547002 = r2546999 + r2546993;
        double r2547003 = r2547001 - r2547002;
        double r2547004 = r2546998 - r2547003;
        double r2547005 = 2.0;
        double r2547006 = r2547004 / r2547005;
        double r2547007 = r2546994 - r2546993;
        double r2547008 = r2547007 * r2546990;
        double r2547009 = exp(r2547008);
        double r2547010 = r2546993 / r2546994;
        double r2547011 = r2546993 + r2547010;
        double r2547012 = r2547009 * r2547011;
        double r2547013 = r2546993 - r2547010;
        double r2547014 = cbrt(r2546997);
        double r2547015 = r2547014 * r2547014;
        double r2547016 = r2547014 * r2547015;
        double r2547017 = r2547013 / r2547016;
        double r2547018 = r2547012 + r2547017;
        double r2547019 = r2547018 / r2547005;
        double r2547020 = r2546992 ? r2547006 : r2547019;
        return r2547020;
}

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

    1. Initial program 39.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. Simplified39.1

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

      \[\leadsto \frac{\color{blue}{\left(\frac{1}{e^{x \cdot \left(1 + \varepsilon\right)}} - \frac{\frac{1}{\varepsilon}}{e^{x \cdot \left(1 + \varepsilon\right)}}\right)} + e^{\left(\varepsilon - 1\right) \cdot x} \cdot \left(1 + \frac{1}{\varepsilon}\right)}{2}\]
    5. Applied associate-+l-32.9

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

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

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

    if 15.696054514468523 < x

    1. Initial program 0.4

      \[\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.4

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

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

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

Reproduce

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