\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{\log \left(e^{\left(e^{\left(\varepsilon + -1\right) \cdot x} + e^{x \cdot \left(-1 - \varepsilon\right)}\right) - \left(\frac{e^{x \cdot \left(-1 - \varepsilon\right)}}{\varepsilon} - \frac{e^{\left(\varepsilon + -1\right) \cdot x}}{\varepsilon}\right)}\right)}{2}double f(double x, double eps) {
double r11706572 = 1.0;
double r11706573 = eps;
double r11706574 = r11706572 / r11706573;
double r11706575 = r11706572 + r11706574;
double r11706576 = r11706572 - r11706573;
double r11706577 = x;
double r11706578 = r11706576 * r11706577;
double r11706579 = -r11706578;
double r11706580 = exp(r11706579);
double r11706581 = r11706575 * r11706580;
double r11706582 = r11706574 - r11706572;
double r11706583 = r11706572 + r11706573;
double r11706584 = r11706583 * r11706577;
double r11706585 = -r11706584;
double r11706586 = exp(r11706585);
double r11706587 = r11706582 * r11706586;
double r11706588 = r11706581 - r11706587;
double r11706589 = 2.0;
double r11706590 = r11706588 / r11706589;
return r11706590;
}
double f(double x, double eps) {
double r11706591 = eps;
double r11706592 = -1.0;
double r11706593 = r11706591 + r11706592;
double r11706594 = x;
double r11706595 = r11706593 * r11706594;
double r11706596 = exp(r11706595);
double r11706597 = r11706592 - r11706591;
double r11706598 = r11706594 * r11706597;
double r11706599 = exp(r11706598);
double r11706600 = r11706596 + r11706599;
double r11706601 = r11706599 / r11706591;
double r11706602 = r11706596 / r11706591;
double r11706603 = r11706601 - r11706602;
double r11706604 = r11706600 - r11706603;
double r11706605 = exp(r11706604);
double r11706606 = log(r11706605);
double r11706607 = 2.0;
double r11706608 = r11706606 / r11706607;
return r11706608;
}



Bits error versus x



Bits error versus eps
Results
Initial program 29.6
Simplified29.5
rmApplied add-log-exp31.3
Applied add-log-exp31.3
Applied diff-log31.3
Applied add-log-exp31.0
Applied sum-log31.0
Simplified1.1
Final simplification1.1
herbie shell --seed 2019124 +o rules:numerics
(FPCore (x eps)
:name "NMSE Section 6.1 mentioned, A"
(/ (- (* (+ 1 (/ 1 eps)) (exp (- (* (- 1 eps) x)))) (* (- (/ 1 eps) 1) (exp (- (* (+ 1 eps) x))))) 2))