Average Error: 29.3 → 1.2
Time: 59.6s
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.9449410912425849:\\ \;\;\;\;\frac{\left(2 - x \cdot x\right) - \frac{-2}{3} \cdot \left(\left(x \cdot x\right) \cdot x\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{e^{x \cdot \left(-1 - \varepsilon\right)} + \left(\left(e^{\left(-1 + \varepsilon\right) \cdot x} + \frac{e^{\left(-1 + \varepsilon\right) \cdot x}}{\varepsilon}\right) - \frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon}\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.9449410912425849:\\
\;\;\;\;\frac{\left(2 - x \cdot x\right) - \frac{-2}{3} \cdot \left(\left(x \cdot x\right) \cdot x\right)}{2}\\

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

\end{array}
double f(double x, double eps) {
        double r4816372 = 1.0;
        double r4816373 = eps;
        double r4816374 = r4816372 / r4816373;
        double r4816375 = r4816372 + r4816374;
        double r4816376 = r4816372 - r4816373;
        double r4816377 = x;
        double r4816378 = r4816376 * r4816377;
        double r4816379 = -r4816378;
        double r4816380 = exp(r4816379);
        double r4816381 = r4816375 * r4816380;
        double r4816382 = r4816374 - r4816372;
        double r4816383 = r4816372 + r4816373;
        double r4816384 = r4816383 * r4816377;
        double r4816385 = -r4816384;
        double r4816386 = exp(r4816385);
        double r4816387 = r4816382 * r4816386;
        double r4816388 = r4816381 - r4816387;
        double r4816389 = 2.0;
        double r4816390 = r4816388 / r4816389;
        return r4816390;
}

double f(double x, double eps) {
        double r4816391 = x;
        double r4816392 = 1.9449410912425849;
        bool r4816393 = r4816391 <= r4816392;
        double r4816394 = 2.0;
        double r4816395 = r4816391 * r4816391;
        double r4816396 = r4816394 - r4816395;
        double r4816397 = -0.6666666666666666;
        double r4816398 = r4816395 * r4816391;
        double r4816399 = r4816397 * r4816398;
        double r4816400 = r4816396 - r4816399;
        double r4816401 = r4816400 / r4816394;
        double r4816402 = -1.0;
        double r4816403 = eps;
        double r4816404 = r4816402 - r4816403;
        double r4816405 = r4816391 * r4816404;
        double r4816406 = exp(r4816405);
        double r4816407 = r4816402 + r4816403;
        double r4816408 = r4816407 * r4816391;
        double r4816409 = exp(r4816408);
        double r4816410 = r4816409 / r4816403;
        double r4816411 = r4816409 + r4816410;
        double r4816412 = r4816406 / r4816403;
        double r4816413 = r4816411 - r4816412;
        double r4816414 = r4816406 + r4816413;
        double r4816415 = r4816414 / r4816394;
        double r4816416 = r4816393 ? r4816401 : r4816415;
        return r4816416;
}

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.9449410912425849

    1. Initial program 38.7

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

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

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

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

    if 1.9449410912425849 < x

    1. Initial program 0.7

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

      \[\leadsto \color{blue}{\frac{\left(e^{x \cdot \left(\varepsilon + -1\right)} + \frac{e^{x \cdot \left(\varepsilon + -1\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 associate--r-0.6

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

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

Reproduce

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