\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 245.97670246303022:\\
\;\;\;\;\frac{\sqrt[3]{\left(\left(2 - x \cdot x\right) + \left(\frac{2}{3} \cdot \left(x \cdot x\right)\right) \cdot x\right) \cdot \left(\left(\left(2 - x \cdot x\right) + \left(\frac{2}{3} \cdot \left(x \cdot x\right)\right) \cdot x\right) \cdot \left(\left(2 - x \cdot x\right) + \left(\frac{2}{3} \cdot \left(x \cdot x\right)\right) \cdot x\right)\right)}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{\left(\frac{e^{\varepsilon \cdot x + \left(-x\right)}}{\varepsilon} + e^{\varepsilon \cdot x + \left(-x\right)}\right) - \left(\frac{e^{\left(-x\right) - \varepsilon \cdot x}}{\varepsilon} - e^{\left(-x\right) - \varepsilon \cdot x}\right)} \cdot \sqrt{\left(\frac{e^{\varepsilon \cdot x + \left(-x\right)}}{\varepsilon} + e^{\varepsilon \cdot x + \left(-x\right)}\right) - \left(\frac{e^{\left(-x\right) - \varepsilon \cdot x}}{\varepsilon} - e^{\left(-x\right) - \varepsilon \cdot x}\right)}}{2}\\
\end{array}double f(double x, double eps) {
double r1266670 = 1.0;
double r1266671 = eps;
double r1266672 = r1266670 / r1266671;
double r1266673 = r1266670 + r1266672;
double r1266674 = r1266670 - r1266671;
double r1266675 = x;
double r1266676 = r1266674 * r1266675;
double r1266677 = -r1266676;
double r1266678 = exp(r1266677);
double r1266679 = r1266673 * r1266678;
double r1266680 = r1266672 - r1266670;
double r1266681 = r1266670 + r1266671;
double r1266682 = r1266681 * r1266675;
double r1266683 = -r1266682;
double r1266684 = exp(r1266683);
double r1266685 = r1266680 * r1266684;
double r1266686 = r1266679 - r1266685;
double r1266687 = 2.0;
double r1266688 = r1266686 / r1266687;
return r1266688;
}
double f(double x, double eps) {
double r1266689 = x;
double r1266690 = 245.97670246303022;
bool r1266691 = r1266689 <= r1266690;
double r1266692 = 2.0;
double r1266693 = r1266689 * r1266689;
double r1266694 = r1266692 - r1266693;
double r1266695 = 0.6666666666666666;
double r1266696 = r1266695 * r1266693;
double r1266697 = r1266696 * r1266689;
double r1266698 = r1266694 + r1266697;
double r1266699 = r1266698 * r1266698;
double r1266700 = r1266698 * r1266699;
double r1266701 = cbrt(r1266700);
double r1266702 = r1266701 / r1266692;
double r1266703 = eps;
double r1266704 = r1266703 * r1266689;
double r1266705 = -r1266689;
double r1266706 = r1266704 + r1266705;
double r1266707 = exp(r1266706);
double r1266708 = r1266707 / r1266703;
double r1266709 = r1266708 + r1266707;
double r1266710 = r1266705 - r1266704;
double r1266711 = exp(r1266710);
double r1266712 = r1266711 / r1266703;
double r1266713 = r1266712 - r1266711;
double r1266714 = r1266709 - r1266713;
double r1266715 = sqrt(r1266714);
double r1266716 = r1266715 * r1266715;
double r1266717 = r1266716 / r1266692;
double r1266718 = r1266691 ? r1266702 : r1266717;
return r1266718;
}



Bits error versus x



Bits error versus eps
Results
if x < 245.97670246303022Initial program 38.8
Simplified38.8
Taylor expanded around 0 1.2
Simplified1.2
rmApplied add-cbrt-cube1.2
if 245.97670246303022 < x Initial program 0.1
Simplified0.1
rmApplied add-sqr-sqrt0.1
Final simplification0.9
herbie shell --seed 2019146
(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))