Average Error: 29.6 → 1.1
Time: 25.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 121.4869422814261525900292326696217060089:\\ \;\;\;\;\frac{2 + \left(x \cdot x\right) \cdot \left(0.6666666666666667406815349750104360282421 \cdot x - 1\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(e^{\left(\varepsilon - 1\right) \cdot x} + \frac{e^{\left(\varepsilon - 1\right) \cdot x}}{\varepsilon}\right) \cdot 1 - e^{\left(1 + \varepsilon\right) \cdot \left(-x\right)} \cdot \left(\frac{1}{\varepsilon} - 1\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 121.4869422814261525900292326696217060089:\\
\;\;\;\;\frac{2 + \left(x \cdot x\right) \cdot \left(0.6666666666666667406815349750104360282421 \cdot x - 1\right)}{2}\\

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

\end{array}
double f(double x, double eps) {
        double r2496908 = 1.0;
        double r2496909 = eps;
        double r2496910 = r2496908 / r2496909;
        double r2496911 = r2496908 + r2496910;
        double r2496912 = r2496908 - r2496909;
        double r2496913 = x;
        double r2496914 = r2496912 * r2496913;
        double r2496915 = -r2496914;
        double r2496916 = exp(r2496915);
        double r2496917 = r2496911 * r2496916;
        double r2496918 = r2496910 - r2496908;
        double r2496919 = r2496908 + r2496909;
        double r2496920 = r2496919 * r2496913;
        double r2496921 = -r2496920;
        double r2496922 = exp(r2496921);
        double r2496923 = r2496918 * r2496922;
        double r2496924 = r2496917 - r2496923;
        double r2496925 = 2.0;
        double r2496926 = r2496924 / r2496925;
        return r2496926;
}

double f(double x, double eps) {
        double r2496927 = x;
        double r2496928 = 121.48694228142615;
        bool r2496929 = r2496927 <= r2496928;
        double r2496930 = 2.0;
        double r2496931 = r2496927 * r2496927;
        double r2496932 = 0.6666666666666667;
        double r2496933 = r2496932 * r2496927;
        double r2496934 = 1.0;
        double r2496935 = r2496933 - r2496934;
        double r2496936 = r2496931 * r2496935;
        double r2496937 = r2496930 + r2496936;
        double r2496938 = r2496937 / r2496930;
        double r2496939 = eps;
        double r2496940 = r2496939 - r2496934;
        double r2496941 = r2496940 * r2496927;
        double r2496942 = exp(r2496941);
        double r2496943 = r2496942 / r2496939;
        double r2496944 = r2496942 + r2496943;
        double r2496945 = r2496944 * r2496934;
        double r2496946 = r2496934 + r2496939;
        double r2496947 = -r2496927;
        double r2496948 = r2496946 * r2496947;
        double r2496949 = exp(r2496948);
        double r2496950 = r2496934 / r2496939;
        double r2496951 = r2496950 - r2496934;
        double r2496952 = r2496949 * r2496951;
        double r2496953 = r2496945 - r2496952;
        double r2496954 = r2496953 / r2496930;
        double r2496955 = r2496929 ? r2496938 : r2496954;
        return r2496955;
}

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

    1. Initial program 39.5

      \[\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. Taylor expanded around 0 1.4

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

      \[\leadsto \frac{\color{blue}{\left(2 - \left(x \cdot x\right) \cdot 1\right) + \left(0.6666666666666667406815349750104360282421 \cdot x\right) \cdot \left(x \cdot x\right)}}{2}\]
    4. Using strategy rm
    5. Applied sub-neg1.4

      \[\leadsto \frac{\color{blue}{\left(2 + \left(-\left(x \cdot x\right) \cdot 1\right)\right)} + \left(0.6666666666666667406815349750104360282421 \cdot x\right) \cdot \left(x \cdot x\right)}{2}\]
    6. Applied associate-+l+1.4

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

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

    if 121.48694228142615 < 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. Taylor expanded around inf 0.2

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

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

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

Reproduce

herbie shell --seed 2019171 
(FPCore (x eps)
  :name "NMSE Section 6.1 mentioned, A"
  (/ (- (* (+ 1.0 (/ 1.0 eps)) (exp (- (* (- 1.0 eps) x)))) (* (- (/ 1.0 eps) 1.0) (exp (- (* (+ 1.0 eps) x))))) 2.0))