Average Error: 30.0 → 1.0
Time: 22.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 362.8291028480374507125816307961940765381:\\ \;\;\;\;\frac{\frac{\left(-1 \cdot 1\right) \cdot {x}^{4} + \left(0.6666666666666667406815349750104360282421 \cdot {x}^{3} + 2\right) \cdot \left(\left(\sqrt[3]{0.6666666666666667406815349750104360282421 \cdot {x}^{3}} \cdot \sqrt[3]{0.6666666666666667406815349750104360282421 \cdot {x}^{3}}\right) \cdot \sqrt[3]{0.6666666666666667406815349750104360282421 \cdot {x}^{3}} + 2\right)}{{x}^{2} \cdot \left(0.6666666666666667406815349750104360282421 \cdot x + 1\right) + 2}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(1 + \frac{1}{\varepsilon}\right) \cdot e^{-\left(1 - \varepsilon\right) \cdot x} - 1 \cdot \left(\frac{e^{-\left(x \cdot \varepsilon + 1 \cdot x\right)}}{\varepsilon} - e^{-\left(x \cdot \varepsilon + 1 \cdot x\right)}\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 362.8291028480374507125816307961940765381:\\
\;\;\;\;\frac{\frac{\left(-1 \cdot 1\right) \cdot {x}^{4} + \left(0.6666666666666667406815349750104360282421 \cdot {x}^{3} + 2\right) \cdot \left(\left(\sqrt[3]{0.6666666666666667406815349750104360282421 \cdot {x}^{3}} \cdot \sqrt[3]{0.6666666666666667406815349750104360282421 \cdot {x}^{3}}\right) \cdot \sqrt[3]{0.6666666666666667406815349750104360282421 \cdot {x}^{3}} + 2\right)}{{x}^{2} \cdot \left(0.6666666666666667406815349750104360282421 \cdot x + 1\right) + 2}}{2}\\

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

\end{array}
double f(double x, double eps) {
        double r35842 = 1.0;
        double r35843 = eps;
        double r35844 = r35842 / r35843;
        double r35845 = r35842 + r35844;
        double r35846 = r35842 - r35843;
        double r35847 = x;
        double r35848 = r35846 * r35847;
        double r35849 = -r35848;
        double r35850 = exp(r35849);
        double r35851 = r35845 * r35850;
        double r35852 = r35844 - r35842;
        double r35853 = r35842 + r35843;
        double r35854 = r35853 * r35847;
        double r35855 = -r35854;
        double r35856 = exp(r35855);
        double r35857 = r35852 * r35856;
        double r35858 = r35851 - r35857;
        double r35859 = 2.0;
        double r35860 = r35858 / r35859;
        return r35860;
}

double f(double x, double eps) {
        double r35861 = x;
        double r35862 = 362.82910284803745;
        bool r35863 = r35861 <= r35862;
        double r35864 = 1.0;
        double r35865 = r35864 * r35864;
        double r35866 = -r35865;
        double r35867 = 4.0;
        double r35868 = pow(r35861, r35867);
        double r35869 = r35866 * r35868;
        double r35870 = 0.6666666666666667;
        double r35871 = 3.0;
        double r35872 = pow(r35861, r35871);
        double r35873 = r35870 * r35872;
        double r35874 = 2.0;
        double r35875 = r35873 + r35874;
        double r35876 = cbrt(r35873);
        double r35877 = r35876 * r35876;
        double r35878 = r35877 * r35876;
        double r35879 = r35878 + r35874;
        double r35880 = r35875 * r35879;
        double r35881 = r35869 + r35880;
        double r35882 = 2.0;
        double r35883 = pow(r35861, r35882);
        double r35884 = r35870 * r35861;
        double r35885 = r35884 + r35864;
        double r35886 = r35883 * r35885;
        double r35887 = r35886 + r35874;
        double r35888 = r35881 / r35887;
        double r35889 = r35888 / r35874;
        double r35890 = eps;
        double r35891 = r35864 / r35890;
        double r35892 = r35864 + r35891;
        double r35893 = r35864 - r35890;
        double r35894 = r35893 * r35861;
        double r35895 = -r35894;
        double r35896 = exp(r35895);
        double r35897 = r35892 * r35896;
        double r35898 = r35861 * r35890;
        double r35899 = r35864 * r35861;
        double r35900 = r35898 + r35899;
        double r35901 = -r35900;
        double r35902 = exp(r35901);
        double r35903 = r35902 / r35890;
        double r35904 = r35903 - r35902;
        double r35905 = r35864 * r35904;
        double r35906 = r35897 - r35905;
        double r35907 = r35906 / r35874;
        double r35908 = r35863 ? r35889 : r35907;
        return r35908;
}

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

    1. Initial program 40.0

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

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

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

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

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

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

    if 362.82910284803745 < x

    1. Initial program 0.1

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

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

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

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

Reproduce

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