Average Error: 29.4 → 1.0
Time: 18.0s
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 359.4230328447739566399832256138324737549:\\ \;\;\;\;\sqrt[3]{0.3333333333333333703407674875052180141211 \cdot {x}^{6} + \left(1 \cdot {x}^{3} + 1\right)} + {x}^{2} \cdot \left(-0.5\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt[3]{\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}} \cdot \sqrt[3]{\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}}\right) \cdot \sqrt[3]{\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}}\\ \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 359.4230328447739566399832256138324737549:\\
\;\;\;\;\sqrt[3]{0.3333333333333333703407674875052180141211 \cdot {x}^{6} + \left(1 \cdot {x}^{3} + 1\right)} + {x}^{2} \cdot \left(-0.5\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\sqrt[3]{\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}} \cdot \sqrt[3]{\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}}\right) \cdot \sqrt[3]{\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}}\\

\end{array}
double f(double x, double eps) {
        double r35969 = 1.0;
        double r35970 = eps;
        double r35971 = r35969 / r35970;
        double r35972 = r35969 + r35971;
        double r35973 = r35969 - r35970;
        double r35974 = x;
        double r35975 = r35973 * r35974;
        double r35976 = -r35975;
        double r35977 = exp(r35976);
        double r35978 = r35972 * r35977;
        double r35979 = r35971 - r35969;
        double r35980 = r35969 + r35970;
        double r35981 = r35980 * r35974;
        double r35982 = -r35981;
        double r35983 = exp(r35982);
        double r35984 = r35979 * r35983;
        double r35985 = r35978 - r35984;
        double r35986 = 2.0;
        double r35987 = r35985 / r35986;
        return r35987;
}

double f(double x, double eps) {
        double r35988 = x;
        double r35989 = 359.42303284477396;
        bool r35990 = r35988 <= r35989;
        double r35991 = 0.33333333333333337;
        double r35992 = 6.0;
        double r35993 = pow(r35988, r35992);
        double r35994 = r35991 * r35993;
        double r35995 = 1.0;
        double r35996 = 3.0;
        double r35997 = pow(r35988, r35996);
        double r35998 = r35995 * r35997;
        double r35999 = r35998 + r35995;
        double r36000 = r35994 + r35999;
        double r36001 = cbrt(r36000);
        double r36002 = 2.0;
        double r36003 = pow(r35988, r36002);
        double r36004 = 0.5;
        double r36005 = -r36004;
        double r36006 = r36003 * r36005;
        double r36007 = r36001 + r36006;
        double r36008 = eps;
        double r36009 = r35995 / r36008;
        double r36010 = r35995 + r36009;
        double r36011 = r35995 - r36008;
        double r36012 = r36011 * r35988;
        double r36013 = exp(r36012);
        double r36014 = r36010 / r36013;
        double r36015 = 2.0;
        double r36016 = r36014 / r36015;
        double r36017 = r36009 - r35995;
        double r36018 = r35995 + r36008;
        double r36019 = r36018 * r35988;
        double r36020 = exp(r36019);
        double r36021 = r36017 / r36020;
        double r36022 = r36021 / r36015;
        double r36023 = r36016 - r36022;
        double r36024 = cbrt(r36023);
        double r36025 = r36024 * r36024;
        double r36026 = r36025 * r36024;
        double r36027 = r35990 ? r36007 : r36026;
        return r36027;
}

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

    1. Initial program 39.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}\]
    2. Simplified39.2

      \[\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 sub-neg1.3

      \[\leadsto 1 + {x}^{2} \cdot \color{blue}{\left(x \cdot 0.3333333333333333703407674875052180141211 + \left(-0.5\right)\right)}\]
    7. Applied distribute-lft-in1.3

      \[\leadsto 1 + \color{blue}{\left({x}^{2} \cdot \left(x \cdot 0.3333333333333333703407674875052180141211\right) + {x}^{2} \cdot \left(-0.5\right)\right)}\]
    8. Applied associate-+r+1.3

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

      \[\leadsto \color{blue}{\left({x}^{3} \cdot 0.3333333333333333703407674875052180141211 + 1\right)} + {x}^{2} \cdot \left(-0.5\right)\]
    10. Using strategy rm
    11. Applied add-cbrt-cube1.3

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

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

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

    if 359.42303284477396 < x

    1. Initial program 0.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. Simplified0.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. Using strategy rm
    4. Applied add-cube-cbrt0.0

      \[\leadsto \color{blue}{\left(\sqrt[3]{\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}} \cdot \sqrt[3]{\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}}\right) \cdot \sqrt[3]{\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. Recombined 2 regimes into one program.
  4. Final simplification1.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le 359.4230328447739566399832256138324737549:\\ \;\;\;\;\sqrt[3]{0.3333333333333333703407674875052180141211 \cdot {x}^{6} + \left(1 \cdot {x}^{3} + 1\right)} + {x}^{2} \cdot \left(-0.5\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\sqrt[3]{\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}} \cdot \sqrt[3]{\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}}\right) \cdot \sqrt[3]{\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}}\\ \end{array}\]

Reproduce

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