Average Error: 29.6 → 1.0
Time: 41.7s
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}\]
\[\frac{\log \left(e^{\left(\left(\frac{e^{\left(\varepsilon - 1\right) \cdot x}}{\varepsilon} - \frac{e^{\left(-1 - \varepsilon\right) \cdot x}}{\varepsilon}\right) + e^{\left(-1 - \varepsilon\right) \cdot x}\right) + e^{\left(\varepsilon - 1\right) \cdot x}}\right)}{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}
\frac{\log \left(e^{\left(\left(\frac{e^{\left(\varepsilon - 1\right) \cdot x}}{\varepsilon} - \frac{e^{\left(-1 - \varepsilon\right) \cdot x}}{\varepsilon}\right) + e^{\left(-1 - \varepsilon\right) \cdot x}\right) + e^{\left(\varepsilon - 1\right) \cdot x}}\right)}{2}
double f(double x, double eps) {
        double r1271004 = 1.0;
        double r1271005 = eps;
        double r1271006 = r1271004 / r1271005;
        double r1271007 = r1271004 + r1271006;
        double r1271008 = r1271004 - r1271005;
        double r1271009 = x;
        double r1271010 = r1271008 * r1271009;
        double r1271011 = -r1271010;
        double r1271012 = exp(r1271011);
        double r1271013 = r1271007 * r1271012;
        double r1271014 = r1271006 - r1271004;
        double r1271015 = r1271004 + r1271005;
        double r1271016 = r1271015 * r1271009;
        double r1271017 = -r1271016;
        double r1271018 = exp(r1271017);
        double r1271019 = r1271014 * r1271018;
        double r1271020 = r1271013 - r1271019;
        double r1271021 = 2.0;
        double r1271022 = r1271020 / r1271021;
        return r1271022;
}

double f(double x, double eps) {
        double r1271023 = eps;
        double r1271024 = 1.0;
        double r1271025 = r1271023 - r1271024;
        double r1271026 = x;
        double r1271027 = r1271025 * r1271026;
        double r1271028 = exp(r1271027);
        double r1271029 = r1271028 / r1271023;
        double r1271030 = -1.0;
        double r1271031 = r1271030 - r1271023;
        double r1271032 = r1271031 * r1271026;
        double r1271033 = exp(r1271032);
        double r1271034 = r1271033 / r1271023;
        double r1271035 = r1271029 - r1271034;
        double r1271036 = r1271035 + r1271033;
        double r1271037 = r1271036 + r1271028;
        double r1271038 = exp(r1271037);
        double r1271039 = log(r1271038);
        double r1271040 = 2.0;
        double r1271041 = r1271039 / r1271040;
        return r1271041;
}

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. Initial program 29.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. Simplified29.6

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

    \[\leadsto \frac{\left(e^{x \cdot \left(-1 + \varepsilon\right)} + \frac{e^{x \cdot \left(-1 + \varepsilon\right)}}{\varepsilon}\right) - \color{blue}{\log \left(e^{\frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon} - e^{x \cdot \left(-1 - \varepsilon\right)}}\right)}}{2}\]
  5. Applied add-log-exp31.0

    \[\leadsto \frac{\left(e^{x \cdot \left(-1 + \varepsilon\right)} + \color{blue}{\log \left(e^{\frac{e^{x \cdot \left(-1 + \varepsilon\right)}}{\varepsilon}}\right)}\right) - \log \left(e^{\frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon} - e^{x \cdot \left(-1 - \varepsilon\right)}}\right)}{2}\]
  6. Applied add-log-exp31.1

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

    \[\leadsto \frac{\color{blue}{\log \left(e^{e^{x \cdot \left(-1 + \varepsilon\right)}} \cdot e^{\frac{e^{x \cdot \left(-1 + \varepsilon\right)}}{\varepsilon}}\right)} - \log \left(e^{\frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon} - e^{x \cdot \left(-1 - \varepsilon\right)}}\right)}{2}\]
  8. Applied diff-log31.1

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

    \[\leadsto \frac{\log \color{blue}{\left(e^{e^{\left(\varepsilon - 1\right) \cdot x} + \left(\left(\frac{e^{\left(\varepsilon - 1\right) \cdot x}}{\varepsilon} - \frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon}\right) + e^{x \cdot \left(-1 - \varepsilon\right)}\right)}\right)}}{2}\]
  10. Final simplification1.0

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

Reproduce

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