Average Error: 29.5 → 1.1
Time: 5.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 243.384144202976728:\\ \;\;\;\;\frac{\frac{{\left(\left(\sqrt[3]{0.66666666666666674 \cdot {x}^{3}} \cdot \sqrt[3]{0.66666666666666674 \cdot {x}^{3}}\right) \cdot \sqrt[3]{0.66666666666666674 \cdot {x}^{3}}\right)}^{3} + {\left(2 - 1 \cdot {x}^{2}\right)}^{3}}{\left(2 - 1 \cdot {x}^{2}\right) \cdot \left(2 - 1 \cdot {x}^{2}\right) + \left(-\left(0.66666666666666674 \cdot {x}^{3}\right) \cdot \left(2 - \left(1 \cdot {x}^{2} + 0.66666666666666674 \cdot {x}^{3}\right)\right)\right)}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(1 + \frac{1}{\varepsilon}\right) \cdot e^{-\left(1 - \varepsilon\right) \cdot x} - 1 \cdot \left(\frac{e^{-\left(x \cdot \varepsilon + 1 \cdot x\right)}}{\varepsilon} - e^{-\left(x \cdot \varepsilon + 1 \cdot x\right)}\right)}{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 243.384144202976728:\\
\;\;\;\;\frac{\frac{{\left(\left(\sqrt[3]{0.66666666666666674 \cdot {x}^{3}} \cdot \sqrt[3]{0.66666666666666674 \cdot {x}^{3}}\right) \cdot \sqrt[3]{0.66666666666666674 \cdot {x}^{3}}\right)}^{3} + {\left(2 - 1 \cdot {x}^{2}\right)}^{3}}{\left(2 - 1 \cdot {x}^{2}\right) \cdot \left(2 - 1 \cdot {x}^{2}\right) + \left(-\left(0.66666666666666674 \cdot {x}^{3}\right) \cdot \left(2 - \left(1 \cdot {x}^{2} + 0.66666666666666674 \cdot {x}^{3}\right)\right)\right)}}{2}\\

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

\end{array}
double f(double x, double eps) {
        double r39151 = 1.0;
        double r39152 = eps;
        double r39153 = r39151 / r39152;
        double r39154 = r39151 + r39153;
        double r39155 = r39151 - r39152;
        double r39156 = x;
        double r39157 = r39155 * r39156;
        double r39158 = -r39157;
        double r39159 = exp(r39158);
        double r39160 = r39154 * r39159;
        double r39161 = r39153 - r39151;
        double r39162 = r39151 + r39152;
        double r39163 = r39162 * r39156;
        double r39164 = -r39163;
        double r39165 = exp(r39164);
        double r39166 = r39161 * r39165;
        double r39167 = r39160 - r39166;
        double r39168 = 2.0;
        double r39169 = r39167 / r39168;
        return r39169;
}

double f(double x, double eps) {
        double r39170 = x;
        double r39171 = 243.38414420297673;
        bool r39172 = r39170 <= r39171;
        double r39173 = 0.6666666666666667;
        double r39174 = 3.0;
        double r39175 = pow(r39170, r39174);
        double r39176 = r39173 * r39175;
        double r39177 = cbrt(r39176);
        double r39178 = r39177 * r39177;
        double r39179 = r39178 * r39177;
        double r39180 = pow(r39179, r39174);
        double r39181 = 2.0;
        double r39182 = 1.0;
        double r39183 = 2.0;
        double r39184 = pow(r39170, r39183);
        double r39185 = r39182 * r39184;
        double r39186 = r39181 - r39185;
        double r39187 = pow(r39186, r39174);
        double r39188 = r39180 + r39187;
        double r39189 = r39186 * r39186;
        double r39190 = r39185 + r39176;
        double r39191 = r39181 - r39190;
        double r39192 = r39176 * r39191;
        double r39193 = -r39192;
        double r39194 = r39189 + r39193;
        double r39195 = r39188 / r39194;
        double r39196 = r39195 / r39181;
        double r39197 = eps;
        double r39198 = r39182 / r39197;
        double r39199 = r39182 + r39198;
        double r39200 = r39182 - r39197;
        double r39201 = r39200 * r39170;
        double r39202 = -r39201;
        double r39203 = exp(r39202);
        double r39204 = r39199 * r39203;
        double r39205 = r39170 * r39197;
        double r39206 = r39182 * r39170;
        double r39207 = r39205 + r39206;
        double r39208 = -r39207;
        double r39209 = exp(r39208);
        double r39210 = r39209 / r39197;
        double r39211 = r39210 - r39209;
        double r39212 = r39182 * r39211;
        double r39213 = r39204 - r39212;
        double r39214 = r39213 / r39181;
        double r39215 = r39172 ? r39196 : r39214;
        return r39215;
}

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

    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. Taylor expanded around 0 1.4

      \[\leadsto \frac{\color{blue}{\left(0.66666666666666674 \cdot {x}^{3} + 2\right) - 1 \cdot {x}^{2}}}{2}\]
    3. Using strategy rm
    4. Applied associate--l+1.4

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

      \[\leadsto \frac{\color{blue}{\left(\sqrt[3]{0.66666666666666674 \cdot {x}^{3}} \cdot \sqrt[3]{0.66666666666666674 \cdot {x}^{3}}\right) \cdot \sqrt[3]{0.66666666666666674 \cdot {x}^{3}}} + \left(2 - 1 \cdot {x}^{2}\right)}{2}\]
    7. Using strategy rm
    8. Applied flip3-+1.4

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

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

    if 243.38414420297673 < 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. Taylor expanded around inf 0.1

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

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

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

Reproduce

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