Average Error: 29.6 → 1.1
Time: 2.8m
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}\]
\[\frac{\log \left(e^{\left(e^{\left(\varepsilon + -1\right) \cdot x} + e^{x \cdot \left(-1 - \varepsilon\right)}\right) - \left(\frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon} - \frac{e^{\left(\varepsilon + -1\right) \cdot x}}{\varepsilon}\right)}\right)}{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}
\frac{\log \left(e^{\left(e^{\left(\varepsilon + -1\right) \cdot x} + e^{x \cdot \left(-1 - \varepsilon\right)}\right) - \left(\frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon} - \frac{e^{\left(\varepsilon + -1\right) \cdot x}}{\varepsilon}\right)}\right)}{2}
double f(double x, double eps) {
        double r11706572 = 1.0;
        double r11706573 = eps;
        double r11706574 = r11706572 / r11706573;
        double r11706575 = r11706572 + r11706574;
        double r11706576 = r11706572 - r11706573;
        double r11706577 = x;
        double r11706578 = r11706576 * r11706577;
        double r11706579 = -r11706578;
        double r11706580 = exp(r11706579);
        double r11706581 = r11706575 * r11706580;
        double r11706582 = r11706574 - r11706572;
        double r11706583 = r11706572 + r11706573;
        double r11706584 = r11706583 * r11706577;
        double r11706585 = -r11706584;
        double r11706586 = exp(r11706585);
        double r11706587 = r11706582 * r11706586;
        double r11706588 = r11706581 - r11706587;
        double r11706589 = 2.0;
        double r11706590 = r11706588 / r11706589;
        return r11706590;
}

double f(double x, double eps) {
        double r11706591 = eps;
        double r11706592 = -1.0;
        double r11706593 = r11706591 + r11706592;
        double r11706594 = x;
        double r11706595 = r11706593 * r11706594;
        double r11706596 = exp(r11706595);
        double r11706597 = r11706592 - r11706591;
        double r11706598 = r11706594 * r11706597;
        double r11706599 = exp(r11706598);
        double r11706600 = r11706596 + r11706599;
        double r11706601 = r11706599 / r11706591;
        double r11706602 = r11706596 / r11706591;
        double r11706603 = r11706601 - r11706602;
        double r11706604 = r11706600 - r11706603;
        double r11706605 = exp(r11706604);
        double r11706606 = log(r11706605);
        double r11706607 = 2.0;
        double r11706608 = r11706606 / r11706607;
        return r11706608;
}

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.5

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

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

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

    \[\leadsto \frac{\frac{e^{x \cdot \left(-1 + \varepsilon\right)}}{\varepsilon} + \color{blue}{\log \left(\frac{e^{e^{x \cdot \left(-1 + \varepsilon\right)}}}{e^{\frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon} - e^{x \cdot \left(-1 - \varepsilon\right)}}}\right)}}{2}\]
  7. Applied add-log-exp31.0

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

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

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

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

Reproduce

herbie shell --seed 2019124 +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))