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

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

\end{array}
double f(double x, double eps) {
        double r34365 = 1.0;
        double r34366 = eps;
        double r34367 = r34365 / r34366;
        double r34368 = r34365 + r34367;
        double r34369 = r34365 - r34366;
        double r34370 = x;
        double r34371 = r34369 * r34370;
        double r34372 = -r34371;
        double r34373 = exp(r34372);
        double r34374 = r34368 * r34373;
        double r34375 = r34367 - r34365;
        double r34376 = r34365 + r34366;
        double r34377 = r34376 * r34370;
        double r34378 = -r34377;
        double r34379 = exp(r34378);
        double r34380 = r34375 * r34379;
        double r34381 = r34374 - r34380;
        double r34382 = 2.0;
        double r34383 = r34381 / r34382;
        return r34383;
}

double f(double x, double eps) {
        double r34384 = x;
        double r34385 = 48.83361325535265;
        bool r34386 = r34384 <= r34385;
        double r34387 = 0.6666666666666667;
        double r34388 = 3.0;
        double r34389 = pow(r34384, r34388);
        double r34390 = r34387 * r34389;
        double r34391 = 2.0;
        double r34392 = 1.0;
        double r34393 = 2.0;
        double r34394 = pow(r34384, r34393);
        double r34395 = r34392 * r34394;
        double r34396 = r34391 - r34395;
        double r34397 = r34390 + r34396;
        double r34398 = r34397 / r34391;
        double r34399 = eps;
        double r34400 = r34392 / r34399;
        double r34401 = r34400 + r34392;
        double r34402 = r34392 - r34399;
        double r34403 = r34402 * r34384;
        double r34404 = exp(r34403);
        double r34405 = r34401 / r34404;
        double r34406 = cbrt(r34405);
        double r34407 = r34406 * r34406;
        double r34408 = r34407 * r34406;
        double r34409 = r34400 - r34392;
        double r34410 = r34392 + r34399;
        double r34411 = r34410 * r34384;
        double r34412 = exp(r34411);
        double r34413 = r34409 / r34412;
        double r34414 = r34408 - r34413;
        double r34415 = r34414 / r34391;
        double r34416 = r34386 ? r34398 : r34415;
        return r34416;
}

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

    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{\frac{\frac{1}{\varepsilon} + 1}{e^{\left(1 - \varepsilon\right) \cdot x}} - \frac{\frac{1}{\varepsilon} - 1}{e^{\left(1 + \varepsilon\right) \cdot x}}}{2}}\]
    3. Taylor expanded around 0 1.4

      \[\leadsto \frac{\color{blue}{\left(0.6666666666666667406815349750104360282421 \cdot {x}^{3} + 2\right) - 1 \cdot {x}^{2}}}{2}\]
    4. Using strategy rm
    5. Applied associate--l+1.4

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

    if 48.83361325535265 < x

    1. Initial program 0.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. Simplified0.3

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

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

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

Reproduce

herbie shell --seed 2019208 
(FPCore (x eps)
  :name "NMSE Section 6.1 mentioned, A"
  :precision binary64
  (/ (- (* (+ 1 (/ 1 eps)) (exp (- (* (- 1 eps) x)))) (* (- (/ 1 eps) 1) (exp (- (* (+ 1 eps) x))))) 2))