Average Error: 29.5 → 1.0
Time: 35.8s
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 10.487564346312402:\\ \;\;\;\;\log \left(e^{\frac{\left(\left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) \cdot x\right) \cdot \left(\left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) \cdot x\right) - \left(1 - \left(x \cdot x\right) \cdot \frac{1}{2}\right) \cdot \left(1 - \left(x \cdot x\right) \cdot \frac{1}{2}\right)}{\left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) \cdot x - \left(1 - \left(x \cdot x\right) \cdot \frac{1}{2}\right)}}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{\frac{\frac{1}{2}}{e^{x - x \cdot \varepsilon}}}{\varepsilon} + \frac{\frac{1}{2}}{e^{x - x \cdot \varepsilon}}\right) - \left(\frac{\frac{\frac{1}{2}}{e^{x + x \cdot \varepsilon}}}{\varepsilon} - \frac{\frac{1}{2}}{\sqrt{e^{x + x \cdot \varepsilon}} \cdot \sqrt{e^{x + x \cdot \varepsilon}}}\right)\\ \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 10.487564346312402:\\
\;\;\;\;\log \left(e^{\frac{\left(\left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) \cdot x\right) \cdot \left(\left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) \cdot x\right) - \left(1 - \left(x \cdot x\right) \cdot \frac{1}{2}\right) \cdot \left(1 - \left(x \cdot x\right) \cdot \frac{1}{2}\right)}{\left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) \cdot x - \left(1 - \left(x \cdot x\right) \cdot \frac{1}{2}\right)}}\right)\\

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

\end{array}
double f(double x, double eps) {
        double r2566528 = 1.0;
        double r2566529 = eps;
        double r2566530 = r2566528 / r2566529;
        double r2566531 = r2566528 + r2566530;
        double r2566532 = r2566528 - r2566529;
        double r2566533 = x;
        double r2566534 = r2566532 * r2566533;
        double r2566535 = -r2566534;
        double r2566536 = exp(r2566535);
        double r2566537 = r2566531 * r2566536;
        double r2566538 = r2566530 - r2566528;
        double r2566539 = r2566528 + r2566529;
        double r2566540 = r2566539 * r2566533;
        double r2566541 = -r2566540;
        double r2566542 = exp(r2566541);
        double r2566543 = r2566538 * r2566542;
        double r2566544 = r2566537 - r2566543;
        double r2566545 = 2.0;
        double r2566546 = r2566544 / r2566545;
        return r2566546;
}

double f(double x, double eps) {
        double r2566547 = x;
        double r2566548 = 10.487564346312402;
        bool r2566549 = r2566547 <= r2566548;
        double r2566550 = r2566547 * r2566547;
        double r2566551 = 0.3333333333333333;
        double r2566552 = r2566550 * r2566551;
        double r2566553 = r2566552 * r2566547;
        double r2566554 = r2566553 * r2566553;
        double r2566555 = 1.0;
        double r2566556 = 0.5;
        double r2566557 = r2566550 * r2566556;
        double r2566558 = r2566555 - r2566557;
        double r2566559 = r2566558 * r2566558;
        double r2566560 = r2566554 - r2566559;
        double r2566561 = r2566553 - r2566558;
        double r2566562 = r2566560 / r2566561;
        double r2566563 = exp(r2566562);
        double r2566564 = log(r2566563);
        double r2566565 = eps;
        double r2566566 = r2566547 * r2566565;
        double r2566567 = r2566547 - r2566566;
        double r2566568 = exp(r2566567);
        double r2566569 = r2566556 / r2566568;
        double r2566570 = r2566569 / r2566565;
        double r2566571 = r2566570 + r2566569;
        double r2566572 = r2566547 + r2566566;
        double r2566573 = exp(r2566572);
        double r2566574 = r2566556 / r2566573;
        double r2566575 = r2566574 / r2566565;
        double r2566576 = sqrt(r2566573);
        double r2566577 = r2566576 * r2566576;
        double r2566578 = r2566556 / r2566577;
        double r2566579 = r2566575 - r2566578;
        double r2566580 = r2566571 - r2566579;
        double r2566581 = r2566549 ? r2566564 : r2566580;
        return r2566581;
}

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

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

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

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

      \[\leadsto \color{blue}{x \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) + \left(1 - \left(x \cdot x\right) \cdot \frac{1}{2}\right)}\]
    5. Using strategy rm
    6. Applied flip-+1.2

      \[\leadsto \color{blue}{\frac{\left(x \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right)\right) \cdot \left(x \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right)\right) - \left(1 - \left(x \cdot x\right) \cdot \frac{1}{2}\right) \cdot \left(1 - \left(x \cdot x\right) \cdot \frac{1}{2}\right)}{x \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) - \left(1 - \left(x \cdot x\right) \cdot \frac{1}{2}\right)}}\]
    7. Using strategy rm
    8. Applied add-log-exp1.2

      \[\leadsto \color{blue}{\log \left(e^{\frac{\left(x \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right)\right) \cdot \left(x \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right)\right) - \left(1 - \left(x \cdot x\right) \cdot \frac{1}{2}\right) \cdot \left(1 - \left(x \cdot x\right) \cdot \frac{1}{2}\right)}{x \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{3}\right) - \left(1 - \left(x \cdot x\right) \cdot \frac{1}{2}\right)}}\right)}\]

    if 10.487564346312402 < x

    1. Initial program 0.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. Simplified0.4

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

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

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

Reproduce

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