Average Error: 29.7 → 1.1
Time: 32.0s
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 332.94412108397438:\\ \;\;\;\;\frac{\left(0.66666666666666674 \cdot {x}^{3} + 2\right) - 1 \cdot {x}^{2}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(\sqrt[3]{1 \cdot \left(\left(\left(e^{-x \cdot \left(\varepsilon + 1\right)} + e^{x \cdot \left(\varepsilon - 1\right)}\right) - \frac{e^{-x \cdot \left(\varepsilon + 1\right)}}{\varepsilon}\right) + \frac{e^{\left(\varepsilon - 1\right) \cdot x}}{\varepsilon}\right)} \cdot \sqrt[3]{1 \cdot \left(\left(\left(e^{-x \cdot \left(\varepsilon + 1\right)} + e^{x \cdot \left(\varepsilon - 1\right)}\right) - \frac{e^{-x \cdot \left(\varepsilon + 1\right)}}{\varepsilon}\right) + \frac{e^{\left(\varepsilon - 1\right) \cdot x}}{\varepsilon}\right)}\right) \cdot \sqrt[3]{1 \cdot \left(\left(\left(e^{-x \cdot \left(\varepsilon + 1\right)} + e^{x \cdot \left(\varepsilon - 1\right)}\right) - \frac{e^{-x \cdot \left(\varepsilon + 1\right)}}{\varepsilon}\right) + \frac{e^{\left(\varepsilon - 1\right) \cdot x}}{\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 332.94412108397438:\\
\;\;\;\;\frac{\left(0.66666666666666674 \cdot {x}^{3} + 2\right) - 1 \cdot {x}^{2}}{2}\\

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

\end{array}
double f(double x, double eps) {
        double r42754 = 1.0;
        double r42755 = eps;
        double r42756 = r42754 / r42755;
        double r42757 = r42754 + r42756;
        double r42758 = r42754 - r42755;
        double r42759 = x;
        double r42760 = r42758 * r42759;
        double r42761 = -r42760;
        double r42762 = exp(r42761);
        double r42763 = r42757 * r42762;
        double r42764 = r42756 - r42754;
        double r42765 = r42754 + r42755;
        double r42766 = r42765 * r42759;
        double r42767 = -r42766;
        double r42768 = exp(r42767);
        double r42769 = r42764 * r42768;
        double r42770 = r42763 - r42769;
        double r42771 = 2.0;
        double r42772 = r42770 / r42771;
        return r42772;
}

double f(double x, double eps) {
        double r42773 = x;
        double r42774 = 332.9441210839744;
        bool r42775 = r42773 <= r42774;
        double r42776 = 0.6666666666666667;
        double r42777 = 3.0;
        double r42778 = pow(r42773, r42777);
        double r42779 = r42776 * r42778;
        double r42780 = 2.0;
        double r42781 = r42779 + r42780;
        double r42782 = 1.0;
        double r42783 = 2.0;
        double r42784 = pow(r42773, r42783);
        double r42785 = r42782 * r42784;
        double r42786 = r42781 - r42785;
        double r42787 = r42786 / r42780;
        double r42788 = eps;
        double r42789 = r42788 + r42782;
        double r42790 = r42773 * r42789;
        double r42791 = -r42790;
        double r42792 = exp(r42791);
        double r42793 = r42788 - r42782;
        double r42794 = r42773 * r42793;
        double r42795 = exp(r42794);
        double r42796 = r42792 + r42795;
        double r42797 = r42792 / r42788;
        double r42798 = r42796 - r42797;
        double r42799 = r42793 * r42773;
        double r42800 = exp(r42799);
        double r42801 = r42800 / r42788;
        double r42802 = r42798 + r42801;
        double r42803 = r42782 * r42802;
        double r42804 = cbrt(r42803);
        double r42805 = r42804 * r42804;
        double r42806 = r42805 * r42804;
        double r42807 = r42806 / r42780;
        double r42808 = r42775 ? r42787 : r42807;
        return r42808;
}

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

    1. Initial program 39.4

      \[\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.66666666666666674 \cdot {x}^{3} + 2\right) - 1 \cdot {x}^{2}}}{2}\]

    if 332.9441210839744 < x

    1. Initial program 0.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 inf 0.0

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

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

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

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

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

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

Reproduce

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