Average Error: 29.6 → 1.2
Time: 39.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(e^{\left(-\varepsilon \cdot x\right) - x} + e^{\varepsilon \cdot x - x}\right) + \left(\frac{e^{\varepsilon \cdot x - x}}{\varepsilon} - \frac{e^{\left(-\varepsilon \cdot x\right) - x}}{\varepsilon}\right)}\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(e^{\left(-\varepsilon \cdot x\right) - x} + e^{\varepsilon \cdot x - x}\right) + \left(\frac{e^{\varepsilon \cdot x - x}}{\varepsilon} - \frac{e^{\left(-\varepsilon \cdot x\right) - x}}{\varepsilon}\right)}\right)}{2}
double f(double x, double eps) {
        double r2225936 = 1.0;
        double r2225937 = eps;
        double r2225938 = r2225936 / r2225937;
        double r2225939 = r2225936 + r2225938;
        double r2225940 = r2225936 - r2225937;
        double r2225941 = x;
        double r2225942 = r2225940 * r2225941;
        double r2225943 = -r2225942;
        double r2225944 = exp(r2225943);
        double r2225945 = r2225939 * r2225944;
        double r2225946 = r2225938 - r2225936;
        double r2225947 = r2225936 + r2225937;
        double r2225948 = r2225947 * r2225941;
        double r2225949 = -r2225948;
        double r2225950 = exp(r2225949);
        double r2225951 = r2225946 * r2225950;
        double r2225952 = r2225945 - r2225951;
        double r2225953 = 2.0;
        double r2225954 = r2225952 / r2225953;
        return r2225954;
}

double f(double x, double eps) {
        double r2225955 = eps;
        double r2225956 = x;
        double r2225957 = r2225955 * r2225956;
        double r2225958 = -r2225957;
        double r2225959 = r2225958 - r2225956;
        double r2225960 = exp(r2225959);
        double r2225961 = r2225957 - r2225956;
        double r2225962 = exp(r2225961);
        double r2225963 = r2225960 + r2225962;
        double r2225964 = r2225962 / r2225955;
        double r2225965 = r2225960 / r2225955;
        double r2225966 = r2225964 - r2225965;
        double r2225967 = r2225963 + r2225966;
        double r2225968 = exp(r2225967);
        double r2225969 = log(r2225968);
        double r2225970 = 2.0;
        double r2225971 = r2225969 / r2225970;
        return r2225971;
}

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^{\left(-x\right) + x \cdot \varepsilon} + \frac{e^{\left(-x\right) + x \cdot \varepsilon}}{\varepsilon}\right) - \left(\frac{e^{\left(-x\right) - x \cdot \varepsilon}}{\varepsilon} - e^{\left(-x\right) - x \cdot \varepsilon}\right)}{2}}\]
  3. Using strategy rm
  4. Applied add-log-exp31.5

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

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

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

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

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

Reproduce

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