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

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

\end{array}
double f(double x, double eps) {
        double r1212337 = 1.0;
        double r1212338 = eps;
        double r1212339 = r1212337 / r1212338;
        double r1212340 = r1212337 + r1212339;
        double r1212341 = r1212337 - r1212338;
        double r1212342 = x;
        double r1212343 = r1212341 * r1212342;
        double r1212344 = -r1212343;
        double r1212345 = exp(r1212344);
        double r1212346 = r1212340 * r1212345;
        double r1212347 = r1212339 - r1212337;
        double r1212348 = r1212337 + r1212338;
        double r1212349 = r1212348 * r1212342;
        double r1212350 = -r1212349;
        double r1212351 = exp(r1212350);
        double r1212352 = r1212347 * r1212351;
        double r1212353 = r1212346 - r1212352;
        double r1212354 = 2.0;
        double r1212355 = r1212353 / r1212354;
        return r1212355;
}

double f(double x, double eps) {
        double r1212356 = x;
        double r1212357 = 23.630683338257473;
        bool r1212358 = r1212356 <= r1212357;
        double r1212359 = r1212356 * r1212356;
        double r1212360 = 0.3333333333333333;
        double r1212361 = r1212359 * r1212360;
        double r1212362 = r1212356 * r1212361;
        double r1212363 = 0.5;
        double r1212364 = r1212359 * r1212363;
        double r1212365 = r1212362 - r1212364;
        double r1212366 = 1.0;
        double r1212367 = r1212365 + r1212366;
        double r1212368 = eps;
        double r1212369 = r1212368 * r1212356;
        double r1212370 = r1212356 - r1212369;
        double r1212371 = exp(r1212370);
        double r1212372 = r1212363 / r1212371;
        double r1212373 = r1212372 / r1212368;
        double r1212374 = r1212373 + r1212372;
        double r1212375 = r1212369 + r1212356;
        double r1212376 = exp(r1212375);
        double r1212377 = r1212363 / r1212376;
        double r1212378 = r1212377 / r1212368;
        double r1212379 = r1212378 - r1212377;
        double r1212380 = r1212374 - r1212379;
        double r1212381 = r1212358 ? r1212367 : r1212380;
        return r1212381;
}

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

    1. Initial program 39.3

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

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

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

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

    if 23.630683338257473 < x

    1. Initial program 0.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}\]
    2. Simplified0.2

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

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

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

Reproduce

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