\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -5.60256275729287428 \cdot 10^{-14}:\\
\;\;\;\;\sqrt{\frac{e^{2 \cdot x} - 1}{\mathsf{fma}\left(-1, 1, e^{x + x}\right)} \cdot \left(e^{x} + 1\right)}\\
\mathbf{else}:\\
\;\;\;\;0.5 \cdot \frac{x}{\sqrt{2}} + \left(\sqrt{2} + \frac{{x}^{2}}{\sqrt{2}} \cdot \left(0.25 - \frac{0.125}{2}\right)\right)\\
\end{array}double f(double x) {
double r16815 = 2.0;
double r16816 = x;
double r16817 = r16815 * r16816;
double r16818 = exp(r16817);
double r16819 = 1.0;
double r16820 = r16818 - r16819;
double r16821 = exp(r16816);
double r16822 = r16821 - r16819;
double r16823 = r16820 / r16822;
double r16824 = sqrt(r16823);
return r16824;
}
double f(double x) {
double r16825 = x;
double r16826 = -5.602562757292874e-14;
bool r16827 = r16825 <= r16826;
double r16828 = 2.0;
double r16829 = r16828 * r16825;
double r16830 = exp(r16829);
double r16831 = 1.0;
double r16832 = r16830 - r16831;
double r16833 = -r16831;
double r16834 = r16825 + r16825;
double r16835 = exp(r16834);
double r16836 = fma(r16833, r16831, r16835);
double r16837 = r16832 / r16836;
double r16838 = exp(r16825);
double r16839 = r16838 + r16831;
double r16840 = r16837 * r16839;
double r16841 = sqrt(r16840);
double r16842 = 0.5;
double r16843 = sqrt(r16828);
double r16844 = r16825 / r16843;
double r16845 = r16842 * r16844;
double r16846 = 2.0;
double r16847 = pow(r16825, r16846);
double r16848 = r16847 / r16843;
double r16849 = 0.25;
double r16850 = 0.125;
double r16851 = r16850 / r16828;
double r16852 = r16849 - r16851;
double r16853 = r16848 * r16852;
double r16854 = r16843 + r16853;
double r16855 = r16845 + r16854;
double r16856 = r16827 ? r16841 : r16855;
return r16856;
}



Bits error versus x
if x < -5.602562757292874e-14Initial program 0.6
rmApplied flip--0.4
Applied associate-/r/0.4
Simplified0.0
if -5.602562757292874e-14 < x Initial program 37.1
Taylor expanded around 0 7.7
Simplified7.7
Final simplification0.8
herbie shell --seed 2020089 +o rules:numerics
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))