Average Error: 29.2 → 0.9
Time: 28.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 245.97670246303022:\\ \;\;\;\;\frac{\sqrt[3]{\left(\left(2 - x \cdot x\right) + \left(\frac{2}{3} \cdot \left(x \cdot x\right)\right) \cdot x\right) \cdot \left(\left(\left(2 - x \cdot x\right) + \left(\frac{2}{3} \cdot \left(x \cdot x\right)\right) \cdot x\right) \cdot \left(\left(2 - x \cdot x\right) + \left(\frac{2}{3} \cdot \left(x \cdot x\right)\right) \cdot x\right)\right)}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{\left(\frac{e^{\varepsilon \cdot x + \left(-x\right)}}{\varepsilon} + e^{\varepsilon \cdot x + \left(-x\right)}\right) - \left(\frac{e^{\left(-x\right) - \varepsilon \cdot x}}{\varepsilon} - e^{\left(-x\right) - \varepsilon \cdot x}\right)} \cdot \sqrt{\left(\frac{e^{\varepsilon \cdot x + \left(-x\right)}}{\varepsilon} + e^{\varepsilon \cdot x + \left(-x\right)}\right) - \left(\frac{e^{\left(-x\right) - \varepsilon \cdot x}}{\varepsilon} - e^{\left(-x\right) - \varepsilon \cdot x}\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 245.97670246303022:\\
\;\;\;\;\frac{\sqrt[3]{\left(\left(2 - x \cdot x\right) + \left(\frac{2}{3} \cdot \left(x \cdot x\right)\right) \cdot x\right) \cdot \left(\left(\left(2 - x \cdot x\right) + \left(\frac{2}{3} \cdot \left(x \cdot x\right)\right) \cdot x\right) \cdot \left(\left(2 - x \cdot x\right) + \left(\frac{2}{3} \cdot \left(x \cdot x\right)\right) \cdot x\right)\right)}}{2}\\

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

\end{array}
double f(double x, double eps) {
        double r1266670 = 1.0;
        double r1266671 = eps;
        double r1266672 = r1266670 / r1266671;
        double r1266673 = r1266670 + r1266672;
        double r1266674 = r1266670 - r1266671;
        double r1266675 = x;
        double r1266676 = r1266674 * r1266675;
        double r1266677 = -r1266676;
        double r1266678 = exp(r1266677);
        double r1266679 = r1266673 * r1266678;
        double r1266680 = r1266672 - r1266670;
        double r1266681 = r1266670 + r1266671;
        double r1266682 = r1266681 * r1266675;
        double r1266683 = -r1266682;
        double r1266684 = exp(r1266683);
        double r1266685 = r1266680 * r1266684;
        double r1266686 = r1266679 - r1266685;
        double r1266687 = 2.0;
        double r1266688 = r1266686 / r1266687;
        return r1266688;
}

double f(double x, double eps) {
        double r1266689 = x;
        double r1266690 = 245.97670246303022;
        bool r1266691 = r1266689 <= r1266690;
        double r1266692 = 2.0;
        double r1266693 = r1266689 * r1266689;
        double r1266694 = r1266692 - r1266693;
        double r1266695 = 0.6666666666666666;
        double r1266696 = r1266695 * r1266693;
        double r1266697 = r1266696 * r1266689;
        double r1266698 = r1266694 + r1266697;
        double r1266699 = r1266698 * r1266698;
        double r1266700 = r1266698 * r1266699;
        double r1266701 = cbrt(r1266700);
        double r1266702 = r1266701 / r1266692;
        double r1266703 = eps;
        double r1266704 = r1266703 * r1266689;
        double r1266705 = -r1266689;
        double r1266706 = r1266704 + r1266705;
        double r1266707 = exp(r1266706);
        double r1266708 = r1266707 / r1266703;
        double r1266709 = r1266708 + r1266707;
        double r1266710 = r1266705 - r1266704;
        double r1266711 = exp(r1266710);
        double r1266712 = r1266711 / r1266703;
        double r1266713 = r1266712 - r1266711;
        double r1266714 = r1266709 - r1266713;
        double r1266715 = sqrt(r1266714);
        double r1266716 = r1266715 * r1266715;
        double r1266717 = r1266716 / r1266692;
        double r1266718 = r1266691 ? r1266702 : r1266717;
        return r1266718;
}

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

    1. Initial program 38.8

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

      \[\leadsto \color{blue}{\frac{\left(e^{\left(-x\right) + x \cdot \varepsilon} + \frac{e^{\left(-x\right) + x \cdot \varepsilon}}{\varepsilon}\right) - \left(\frac{e^{\left(-x\right) - x \cdot \varepsilon}}{\varepsilon} - e^{\left(-x\right) - x \cdot \varepsilon}\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(2 - x \cdot x\right) + x \cdot \left(\left(x \cdot x\right) \cdot \frac{2}{3}\right)}}{2}\]
    5. Using strategy rm
    6. Applied add-cbrt-cube1.2

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

    if 245.97670246303022 < 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. Simplified0.1

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

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

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

Reproduce

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