Average Error: 29.6 → 1.0
Time: 20.1s
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}\]
\[\left(\frac{0.5}{e^{x \cdot \left(1 - \varepsilon\right)}} - \left(\frac{\frac{0.5}{\varepsilon}}{e^{x \cdot \left(\varepsilon + 1\right)}} - \frac{\frac{0.5}{\varepsilon}}{e^{x \cdot \left(1 - \varepsilon\right)}}\right)\right) + \frac{\frac{1}{e^{\left(1 + \varepsilon\right) \cdot x}}}{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}
\left(\frac{0.5}{e^{x \cdot \left(1 - \varepsilon\right)}} - \left(\frac{\frac{0.5}{\varepsilon}}{e^{x \cdot \left(\varepsilon + 1\right)}} - \frac{\frac{0.5}{\varepsilon}}{e^{x \cdot \left(1 - \varepsilon\right)}}\right)\right) + \frac{\frac{1}{e^{\left(1 + \varepsilon\right) \cdot x}}}{2}
double f(double x, double eps) {
        double r32664 = 1.0;
        double r32665 = eps;
        double r32666 = r32664 / r32665;
        double r32667 = r32664 + r32666;
        double r32668 = r32664 - r32665;
        double r32669 = x;
        double r32670 = r32668 * r32669;
        double r32671 = -r32670;
        double r32672 = exp(r32671);
        double r32673 = r32667 * r32672;
        double r32674 = r32666 - r32664;
        double r32675 = r32664 + r32665;
        double r32676 = r32675 * r32669;
        double r32677 = -r32676;
        double r32678 = exp(r32677);
        double r32679 = r32674 * r32678;
        double r32680 = r32673 - r32679;
        double r32681 = 2.0;
        double r32682 = r32680 / r32681;
        return r32682;
}

double f(double x, double eps) {
        double r32683 = 0.5;
        double r32684 = x;
        double r32685 = 1.0;
        double r32686 = eps;
        double r32687 = r32685 - r32686;
        double r32688 = r32684 * r32687;
        double r32689 = exp(r32688);
        double r32690 = r32683 / r32689;
        double r32691 = r32683 / r32686;
        double r32692 = r32686 + r32685;
        double r32693 = r32684 * r32692;
        double r32694 = exp(r32693);
        double r32695 = r32691 / r32694;
        double r32696 = r32691 / r32689;
        double r32697 = r32695 - r32696;
        double r32698 = r32690 - r32697;
        double r32699 = r32685 + r32686;
        double r32700 = r32699 * r32684;
        double r32701 = exp(r32700);
        double r32702 = r32685 / r32701;
        double r32703 = 2.0;
        double r32704 = r32702 / r32703;
        double r32705 = r32698 + r32704;
        return r32705;
}

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. Initial program 29.6

    \[\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. Simplified29.6

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

    \[\leadsto \frac{\frac{1 + \frac{1}{\varepsilon}}{e^{\left(1 - \varepsilon\right) \cdot x}}}{2} - \frac{\color{blue}{\frac{\frac{1}{\varepsilon}}{e^{\left(1 + \varepsilon\right) \cdot x}} - \frac{1}{e^{\left(1 + \varepsilon\right) \cdot x}}}}{2}\]
  5. Applied div-sub29.6

    \[\leadsto \frac{\frac{1 + \frac{1}{\varepsilon}}{e^{\left(1 - \varepsilon\right) \cdot x}}}{2} - \color{blue}{\left(\frac{\frac{\frac{1}{\varepsilon}}{e^{\left(1 + \varepsilon\right) \cdot x}}}{2} - \frac{\frac{1}{e^{\left(1 + \varepsilon\right) \cdot x}}}{2}\right)}\]
  6. Applied associate--r-24.9

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

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

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

    \[\leadsto \left(\frac{0.5}{e^{x \cdot \left(1 - \varepsilon\right)}} - \left(\frac{\frac{0.5}{\varepsilon}}{e^{x \cdot \left(\varepsilon + 1\right)}} - \frac{\frac{0.5}{\varepsilon}}{e^{x \cdot \left(1 - \varepsilon\right)}}\right)\right) + \frac{\frac{1}{e^{\left(1 + \varepsilon\right) \cdot x}}}{2}\]

Reproduce

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