Average Error: 29.5 → 0.9
Time: 7.7m
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 355.4869306141758:\\ \;\;\;\;\frac{\sqrt[3]{\left((\left(\left(x \cdot x\right) \cdot x\right) \cdot \frac{2}{3} + \left(2 - x \cdot x\right))_* \cdot (\left(\left(x \cdot x\right) \cdot x\right) \cdot \frac{2}{3} + \left(2 - x \cdot x\right))_*\right) \cdot (\left(\left(x \cdot x\right) \cdot x\right) \cdot \frac{2}{3} + \left(2 - x \cdot x\right))_*}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(\sqrt[3]{\left(e^{\left(-1 + \varepsilon\right) \cdot x} + \frac{e^{\left(-1 + \varepsilon\right) \cdot x}}{\varepsilon}\right) - \left(\frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon} - e^{x \cdot \left(-1 - \varepsilon\right)}\right)} \cdot \sqrt[3]{\left(e^{\left(-1 + \varepsilon\right) \cdot x} + \frac{e^{\left(-1 + \varepsilon\right) \cdot x}}{\varepsilon}\right) - \left(\frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon} - e^{x \cdot \left(-1 - \varepsilon\right)}\right)}\right) \cdot \sqrt[3]{\left(e^{\left(-1 + \varepsilon\right) \cdot x} + \frac{e^{\left(-1 + \varepsilon\right) \cdot x}}{\varepsilon}\right) - \left(\frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon} - e^{x \cdot \left(-1 - \varepsilon\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 355.4869306141758:\\
\;\;\;\;\frac{\sqrt[3]{\left((\left(\left(x \cdot x\right) \cdot x\right) \cdot \frac{2}{3} + \left(2 - x \cdot x\right))_* \cdot (\left(\left(x \cdot x\right) \cdot x\right) \cdot \frac{2}{3} + \left(2 - x \cdot x\right))_*\right) \cdot (\left(\left(x \cdot x\right) \cdot x\right) \cdot \frac{2}{3} + \left(2 - x \cdot x\right))_*}}{2}\\

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

\end{array}
double f(double x, double eps) {
        double r6646024 = 1.0;
        double r6646025 = eps;
        double r6646026 = r6646024 / r6646025;
        double r6646027 = r6646024 + r6646026;
        double r6646028 = r6646024 - r6646025;
        double r6646029 = x;
        double r6646030 = r6646028 * r6646029;
        double r6646031 = -r6646030;
        double r6646032 = exp(r6646031);
        double r6646033 = r6646027 * r6646032;
        double r6646034 = r6646026 - r6646024;
        double r6646035 = r6646024 + r6646025;
        double r6646036 = r6646035 * r6646029;
        double r6646037 = -r6646036;
        double r6646038 = exp(r6646037);
        double r6646039 = r6646034 * r6646038;
        double r6646040 = r6646033 - r6646039;
        double r6646041 = 2.0;
        double r6646042 = r6646040 / r6646041;
        return r6646042;
}

double f(double x, double eps) {
        double r6646043 = x;
        double r6646044 = 355.4869306141758;
        bool r6646045 = r6646043 <= r6646044;
        double r6646046 = r6646043 * r6646043;
        double r6646047 = r6646046 * r6646043;
        double r6646048 = 0.6666666666666666;
        double r6646049 = 2.0;
        double r6646050 = r6646049 - r6646046;
        double r6646051 = fma(r6646047, r6646048, r6646050);
        double r6646052 = r6646051 * r6646051;
        double r6646053 = r6646052 * r6646051;
        double r6646054 = cbrt(r6646053);
        double r6646055 = r6646054 / r6646049;
        double r6646056 = -1.0;
        double r6646057 = eps;
        double r6646058 = r6646056 + r6646057;
        double r6646059 = r6646058 * r6646043;
        double r6646060 = exp(r6646059);
        double r6646061 = r6646060 / r6646057;
        double r6646062 = r6646060 + r6646061;
        double r6646063 = r6646056 - r6646057;
        double r6646064 = r6646043 * r6646063;
        double r6646065 = exp(r6646064);
        double r6646066 = r6646065 / r6646057;
        double r6646067 = r6646066 - r6646065;
        double r6646068 = r6646062 - r6646067;
        double r6646069 = cbrt(r6646068);
        double r6646070 = r6646069 * r6646069;
        double r6646071 = r6646070 * r6646069;
        double r6646072 = r6646071 / r6646049;
        double r6646073 = r6646045 ? r6646055 : r6646072;
        return r6646073;
}

Error

Bits error versus x

Bits error versus eps

Derivation

  1. Split input into 2 regimes
  2. if x < 355.4869306141758

    1. Initial program 39.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. Simplified39.2

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

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

      \[\leadsto \frac{\color{blue}{(\left(x \cdot \left(x \cdot x\right)\right) \cdot \frac{2}{3} + \left(2 - x \cdot x\right))_*}}{2}\]
    5. Using strategy rm
    6. Applied add-cbrt-cube1.2

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

    if 355.4869306141758 < 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. Simplified0.0

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

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

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

Reproduce

herbie shell --seed 2019104 +o rules:numerics
(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))