Average Error: 29.0 → 0.9
Time: 22.1s
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}\]
\[\frac{1 \cdot e^{-\left(x \cdot \varepsilon + 1 \cdot x\right)} + 1 \cdot \left(e^{x \cdot \varepsilon - 1 \cdot x} + \left(\frac{e^{x \cdot \varepsilon - 1 \cdot x}}{\varepsilon} - \frac{e^{-\left(x \cdot \varepsilon + 1 \cdot x\right)}}{\varepsilon}\right)\right)}{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}
\frac{1 \cdot e^{-\left(x \cdot \varepsilon + 1 \cdot x\right)} + 1 \cdot \left(e^{x \cdot \varepsilon - 1 \cdot x} + \left(\frac{e^{x \cdot \varepsilon - 1 \cdot x}}{\varepsilon} - \frac{e^{-\left(x \cdot \varepsilon + 1 \cdot x\right)}}{\varepsilon}\right)\right)}{2}
double f(double x, double eps) {
        double r2942135 = 1.0;
        double r2942136 = eps;
        double r2942137 = r2942135 / r2942136;
        double r2942138 = r2942135 + r2942137;
        double r2942139 = r2942135 - r2942136;
        double r2942140 = x;
        double r2942141 = r2942139 * r2942140;
        double r2942142 = -r2942141;
        double r2942143 = exp(r2942142);
        double r2942144 = r2942138 * r2942143;
        double r2942145 = r2942137 - r2942135;
        double r2942146 = r2942135 + r2942136;
        double r2942147 = r2942146 * r2942140;
        double r2942148 = -r2942147;
        double r2942149 = exp(r2942148);
        double r2942150 = r2942145 * r2942149;
        double r2942151 = r2942144 - r2942150;
        double r2942152 = 2.0;
        double r2942153 = r2942151 / r2942152;
        return r2942153;
}

double f(double x, double eps) {
        double r2942154 = 1.0;
        double r2942155 = x;
        double r2942156 = eps;
        double r2942157 = r2942155 * r2942156;
        double r2942158 = r2942154 * r2942155;
        double r2942159 = r2942157 + r2942158;
        double r2942160 = -r2942159;
        double r2942161 = exp(r2942160);
        double r2942162 = r2942154 * r2942161;
        double r2942163 = r2942157 - r2942158;
        double r2942164 = exp(r2942163);
        double r2942165 = r2942164 / r2942156;
        double r2942166 = r2942161 / r2942156;
        double r2942167 = r2942165 - r2942166;
        double r2942168 = r2942164 + r2942167;
        double r2942169 = r2942154 * r2942168;
        double r2942170 = r2942162 + r2942169;
        double r2942171 = 2.0;
        double r2942172 = r2942170 / r2942171;
        return r2942172;
}

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. Initial program 29.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 29.0

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

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

    \[\leadsto \frac{1 \cdot e^{-\left(x \cdot \varepsilon + 1 \cdot x\right)} + 1 \cdot \color{blue}{\left(e^{x \cdot \varepsilon - 1 \cdot x} + \left(\frac{e^{x \cdot \varepsilon - 1 \cdot x}}{\varepsilon} - \frac{e^{-\left(x \cdot \varepsilon + 1 \cdot x\right)}}{\varepsilon}\right)\right)}}{2}\]
  6. Final simplification0.9

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

Reproduce

herbie shell --seed 2019174 
(FPCore (x eps)
  :name "NMSE Section 6.1 mentioned, A"
  (/ (- (* (+ 1.0 (/ 1.0 eps)) (exp (- (* (- 1.0 eps) x)))) (* (- (/ 1.0 eps) 1.0) (exp (- (* (+ 1.0 eps) x))))) 2.0))