Average Error: 29.4 → 1.1
Time: 14.7s
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 13.35324953554097504593300982378423213959:\\ \;\;\;\;1 + \log \left(e^{{x}^{2} \cdot \left(x \cdot 0.3333333333333333703407674875052180141211 - 0.5\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{\sqrt[3]{e^{\left(1 - \varepsilon\right) \cdot x}} \cdot \sqrt[3]{e^{\left(1 - \varepsilon\right) \cdot x}}} \cdot \frac{1 + \frac{1}{\varepsilon}}{\sqrt[3]{e^{\left(1 - \varepsilon\right) \cdot x}}}}{2} - \frac{\frac{\frac{1}{\varepsilon} - 1}{e^{\left(1 + \varepsilon\right) \cdot x}}}{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 13.35324953554097504593300982378423213959:\\
\;\;\;\;1 + \log \left(e^{{x}^{2} \cdot \left(x \cdot 0.3333333333333333703407674875052180141211 - 0.5\right)}\right)\\

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

\end{array}
double f(double x, double eps) {
        double r42380 = 1.0;
        double r42381 = eps;
        double r42382 = r42380 / r42381;
        double r42383 = r42380 + r42382;
        double r42384 = r42380 - r42381;
        double r42385 = x;
        double r42386 = r42384 * r42385;
        double r42387 = -r42386;
        double r42388 = exp(r42387);
        double r42389 = r42383 * r42388;
        double r42390 = r42382 - r42380;
        double r42391 = r42380 + r42381;
        double r42392 = r42391 * r42385;
        double r42393 = -r42392;
        double r42394 = exp(r42393);
        double r42395 = r42390 * r42394;
        double r42396 = r42389 - r42395;
        double r42397 = 2.0;
        double r42398 = r42396 / r42397;
        return r42398;
}

double f(double x, double eps) {
        double r42399 = x;
        double r42400 = 13.353249535540975;
        bool r42401 = r42399 <= r42400;
        double r42402 = 1.0;
        double r42403 = 2.0;
        double r42404 = pow(r42399, r42403);
        double r42405 = 0.33333333333333337;
        double r42406 = r42399 * r42405;
        double r42407 = 0.5;
        double r42408 = r42406 - r42407;
        double r42409 = r42404 * r42408;
        double r42410 = exp(r42409);
        double r42411 = log(r42410);
        double r42412 = r42402 + r42411;
        double r42413 = 1.0;
        double r42414 = eps;
        double r42415 = r42402 - r42414;
        double r42416 = r42415 * r42399;
        double r42417 = exp(r42416);
        double r42418 = cbrt(r42417);
        double r42419 = r42418 * r42418;
        double r42420 = r42413 / r42419;
        double r42421 = r42402 / r42414;
        double r42422 = r42402 + r42421;
        double r42423 = r42422 / r42418;
        double r42424 = r42420 * r42423;
        double r42425 = 2.0;
        double r42426 = r42424 / r42425;
        double r42427 = r42421 - r42402;
        double r42428 = r42402 + r42414;
        double r42429 = r42428 * r42399;
        double r42430 = exp(r42429);
        double r42431 = r42427 / r42430;
        double r42432 = r42431 / r42425;
        double r42433 = r42426 - r42432;
        double r42434 = r42401 ? r42412 : r42433;
        return r42434;
}

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

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

      \[\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. Taylor expanded around 0 1.3

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

      \[\leadsto \color{blue}{1 + {x}^{2} \cdot \left(x \cdot 0.3333333333333333703407674875052180141211 - 0.5\right)}\]
    5. Using strategy rm
    6. Applied add-log-exp1.3

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

    if 13.353249535540975 < 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}{\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 add-cube-cbrt0.4

      \[\leadsto \frac{\frac{1 + \frac{1}{\varepsilon}}{\color{blue}{\left(\sqrt[3]{e^{\left(1 - \varepsilon\right) \cdot x}} \cdot \sqrt[3]{e^{\left(1 - \varepsilon\right) \cdot x}}\right) \cdot \sqrt[3]{e^{\left(1 - \varepsilon\right) \cdot x}}}}}{2} - \frac{\frac{\frac{1}{\varepsilon} - 1}{e^{\left(1 + \varepsilon\right) \cdot x}}}{2}\]
    5. Applied *-un-lft-identity0.4

      \[\leadsto \frac{\frac{\color{blue}{1 \cdot \left(1 + \frac{1}{\varepsilon}\right)}}{\left(\sqrt[3]{e^{\left(1 - \varepsilon\right) \cdot x}} \cdot \sqrt[3]{e^{\left(1 - \varepsilon\right) \cdot x}}\right) \cdot \sqrt[3]{e^{\left(1 - \varepsilon\right) \cdot x}}}}{2} - \frac{\frac{\frac{1}{\varepsilon} - 1}{e^{\left(1 + \varepsilon\right) \cdot x}}}{2}\]
    6. Applied times-frac0.4

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

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

Reproduce

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