\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -3.639623849017884427727010081959901910409 \cdot 10^{-7}:\\
\;\;\;\;\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x + x} - 1 \cdot 1} \cdot \frac{{\left(e^{x}\right)}^{3} + {1}^{3}}{\mathsf{fma}\left(1, 1 - e^{x}, e^{2 \cdot x}\right)}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\mathsf{fma}\left(x, \mathsf{fma}\left(0.5, x, 1\right), 2\right)}\\
\end{array}double f(double x) {
double r20777 = 2.0;
double r20778 = x;
double r20779 = r20777 * r20778;
double r20780 = exp(r20779);
double r20781 = 1.0;
double r20782 = r20780 - r20781;
double r20783 = exp(r20778);
double r20784 = r20783 - r20781;
double r20785 = r20782 / r20784;
double r20786 = sqrt(r20785);
return r20786;
}
double f(double x) {
double r20787 = x;
double r20788 = -3.6396238490178844e-07;
bool r20789 = r20787 <= r20788;
double r20790 = 2.0;
double r20791 = r20790 * r20787;
double r20792 = exp(r20791);
double r20793 = 1.0;
double r20794 = r20792 - r20793;
double r20795 = r20787 + r20787;
double r20796 = exp(r20795);
double r20797 = r20793 * r20793;
double r20798 = r20796 - r20797;
double r20799 = r20794 / r20798;
double r20800 = exp(r20787);
double r20801 = 3.0;
double r20802 = pow(r20800, r20801);
double r20803 = pow(r20793, r20801);
double r20804 = r20802 + r20803;
double r20805 = r20793 - r20800;
double r20806 = 2.0;
double r20807 = r20806 * r20787;
double r20808 = exp(r20807);
double r20809 = fma(r20793, r20805, r20808);
double r20810 = r20804 / r20809;
double r20811 = r20799 * r20810;
double r20812 = sqrt(r20811);
double r20813 = 0.5;
double r20814 = fma(r20813, r20787, r20793);
double r20815 = fma(r20787, r20814, r20790);
double r20816 = sqrt(r20815);
double r20817 = r20789 ? r20812 : r20816;
return r20817;
}



Bits error versus x
if x < -3.6396238490178844e-07Initial program 0.2
rmApplied flip--0.1
Applied associate-/r/0.1
Simplified0.0
rmApplied flip3-+0.0
Simplified0.0
if -3.6396238490178844e-07 < x Initial program 34.4
Taylor expanded around 0 6.6
Simplified6.6
Final simplification0.8
herbie shell --seed 2019325 +o rules:numerics
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))