Average Error: 29.4 → 0.9
Time: 6.3s
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 199.996721386793325:\\ \;\;\;\;\left(\left({1}^{\frac{1}{3}} \cdot \left(\left(0.1111111111111111 \cdot {x}^{3} + 1\right) - 0.166666666666666657 \cdot {x}^{2}\right)\right) \cdot \sqrt[3]{\left(0.33333333333333337 \cdot {x}^{3} + 1\right) - 0.5 \cdot {x}^{2}}\right) \cdot \left({1}^{\frac{1}{3}} \cdot \left(\left(0.1111111111111111 \cdot {x}^{3} + 1\right) - 0.166666666666666657 \cdot {x}^{2}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \left(\left(\frac{1}{e^{x \cdot \left(\varepsilon + 1\right)}} + \frac{1}{e^{x \cdot \left(1 - \varepsilon\right)}}\right) - \frac{1}{e^{x \cdot \left(\varepsilon + 1\right)} \cdot \varepsilon}\right) + \frac{\frac{0.5}{\varepsilon}}{e^{x \cdot \left(1 - \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 199.996721386793325:\\
\;\;\;\;\left(\left({1}^{\frac{1}{3}} \cdot \left(\left(0.1111111111111111 \cdot {x}^{3} + 1\right) - 0.166666666666666657 \cdot {x}^{2}\right)\right) \cdot \sqrt[3]{\left(0.33333333333333337 \cdot {x}^{3} + 1\right) - 0.5 \cdot {x}^{2}}\right) \cdot \left({1}^{\frac{1}{3}} \cdot \left(\left(0.1111111111111111 \cdot {x}^{3} + 1\right) - 0.166666666666666657 \cdot {x}^{2}\right)\right)\\

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

\end{array}
double f(double x, double eps) {
        double r54626 = 1.0;
        double r54627 = eps;
        double r54628 = r54626 / r54627;
        double r54629 = r54626 + r54628;
        double r54630 = r54626 - r54627;
        double r54631 = x;
        double r54632 = r54630 * r54631;
        double r54633 = -r54632;
        double r54634 = exp(r54633);
        double r54635 = r54629 * r54634;
        double r54636 = r54628 - r54626;
        double r54637 = r54626 + r54627;
        double r54638 = r54637 * r54631;
        double r54639 = -r54638;
        double r54640 = exp(r54639);
        double r54641 = r54636 * r54640;
        double r54642 = r54635 - r54641;
        double r54643 = 2.0;
        double r54644 = r54642 / r54643;
        return r54644;
}

double f(double x, double eps) {
        double r54645 = x;
        double r54646 = 199.99672138679333;
        bool r54647 = r54645 <= r54646;
        double r54648 = 1.0;
        double r54649 = 0.3333333333333333;
        double r54650 = pow(r54648, r54649);
        double r54651 = 0.1111111111111111;
        double r54652 = 3.0;
        double r54653 = pow(r54645, r54652);
        double r54654 = r54651 * r54653;
        double r54655 = 1.0;
        double r54656 = r54654 + r54655;
        double r54657 = 0.16666666666666666;
        double r54658 = 2.0;
        double r54659 = pow(r54645, r54658);
        double r54660 = r54657 * r54659;
        double r54661 = r54656 - r54660;
        double r54662 = r54650 * r54661;
        double r54663 = 0.33333333333333337;
        double r54664 = r54663 * r54653;
        double r54665 = r54664 + r54648;
        double r54666 = 0.5;
        double r54667 = r54666 * r54659;
        double r54668 = r54665 - r54667;
        double r54669 = cbrt(r54668);
        double r54670 = r54662 * r54669;
        double r54671 = r54670 * r54662;
        double r54672 = eps;
        double r54673 = r54672 + r54648;
        double r54674 = r54645 * r54673;
        double r54675 = exp(r54674);
        double r54676 = r54655 / r54675;
        double r54677 = r54648 - r54672;
        double r54678 = r54645 * r54677;
        double r54679 = exp(r54678);
        double r54680 = r54655 / r54679;
        double r54681 = r54676 + r54680;
        double r54682 = r54675 * r54672;
        double r54683 = r54655 / r54682;
        double r54684 = r54681 - r54683;
        double r54685 = r54666 * r54684;
        double r54686 = r54666 / r54672;
        double r54687 = r54686 / r54679;
        double r54688 = r54685 + r54687;
        double r54689 = r54647 ? r54671 : r54688;
        return r54689;
}

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

    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}{\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.1

      \[\leadsto \color{blue}{\left(0.33333333333333337 \cdot {x}^{3} + 1\right) - 0.5 \cdot {x}^{2}}\]
    4. Using strategy rm
    5. Applied add-cube-cbrt1.2

      \[\leadsto \color{blue}{\left(\sqrt[3]{\left(0.33333333333333337 \cdot {x}^{3} + 1\right) - 0.5 \cdot {x}^{2}} \cdot \sqrt[3]{\left(0.33333333333333337 \cdot {x}^{3} + 1\right) - 0.5 \cdot {x}^{2}}\right) \cdot \sqrt[3]{\left(0.33333333333333337 \cdot {x}^{3} + 1\right) - 0.5 \cdot {x}^{2}}}\]
    6. Taylor expanded around 0 1.2

      \[\leadsto \left(\sqrt[3]{\left(0.33333333333333337 \cdot {x}^{3} + 1\right) - 0.5 \cdot {x}^{2}} \cdot \sqrt[3]{\left(0.33333333333333337 \cdot {x}^{3} + 1\right) - 0.5 \cdot {x}^{2}}\right) \cdot \color{blue}{\left(\left(0.1111111111111111 \cdot \left({x}^{3} \cdot {1}^{\frac{1}{3}}\right) + {1}^{\frac{1}{3}}\right) - 0.166666666666666657 \cdot \left({x}^{2} \cdot {1}^{\frac{1}{3}}\right)\right)}\]
    7. Simplified1.2

      \[\leadsto \left(\sqrt[3]{\left(0.33333333333333337 \cdot {x}^{3} + 1\right) - 0.5 \cdot {x}^{2}} \cdot \sqrt[3]{\left(0.33333333333333337 \cdot {x}^{3} + 1\right) - 0.5 \cdot {x}^{2}}\right) \cdot \color{blue}{\left({1}^{\frac{1}{3}} \cdot \left(\left(0.1111111111111111 \cdot {x}^{3} + 1\right) - 0.166666666666666657 \cdot {x}^{2}\right)\right)}\]
    8. Taylor expanded around 0 1.2

      \[\leadsto \left(\color{blue}{\left(\left(0.1111111111111111 \cdot \left({x}^{3} \cdot {1}^{\frac{1}{3}}\right) + {1}^{\frac{1}{3}}\right) - 0.166666666666666657 \cdot \left({x}^{2} \cdot {1}^{\frac{1}{3}}\right)\right)} \cdot \sqrt[3]{\left(0.33333333333333337 \cdot {x}^{3} + 1\right) - 0.5 \cdot {x}^{2}}\right) \cdot \left({1}^{\frac{1}{3}} \cdot \left(\left(0.1111111111111111 \cdot {x}^{3} + 1\right) - 0.166666666666666657 \cdot {x}^{2}\right)\right)\]
    9. Simplified1.2

      \[\leadsto \left(\color{blue}{\left({1}^{\frac{1}{3}} \cdot \left(\left(0.1111111111111111 \cdot {x}^{3} + 1\right) - 0.166666666666666657 \cdot {x}^{2}\right)\right)} \cdot \sqrt[3]{\left(0.33333333333333337 \cdot {x}^{3} + 1\right) - 0.5 \cdot {x}^{2}}\right) \cdot \left({1}^{\frac{1}{3}} \cdot \left(\left(0.1111111111111111 \cdot {x}^{3} + 1\right) - 0.166666666666666657 \cdot {x}^{2}\right)\right)\]

    if 199.99672138679333 < 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{\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 inf 0.1

      \[\leadsto \color{blue}{\left(0.5 \cdot \frac{1}{\varepsilon \cdot e^{x \cdot \left(1 - \varepsilon\right)}} + \left(0.5 \cdot \frac{1}{e^{x \cdot \left(\varepsilon + 1\right)}} + 0.5 \cdot \frac{1}{e^{x \cdot \left(1 - \varepsilon\right)}}\right)\right) - 0.5 \cdot \frac{1}{e^{x \cdot \left(\varepsilon + 1\right)} \cdot \varepsilon}}\]
    4. Simplified0.1

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

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

Reproduce

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