\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -3.95248520591072818947935714688592719751 \cdot 10^{-11}:\\
\;\;\;\;\sqrt{\frac{\frac{e^{2 \cdot x} - 1}{\frac{\mathsf{fma}\left(-1, 1, e^{x + x}\right)}{{\left(e^{x}\right)}^{3} + {1}^{3}}}}{e^{x} \cdot e^{x} + \left(1 \cdot 1 - e^{x} \cdot 1\right)}}\\
\mathbf{elif}\;x \le 5.644932717281176303190925487624055737173 \cdot 10^{-17}:\\
\;\;\;\;\sqrt{\mathsf{fma}\left(0.5, {x}^{2}, \mathsf{fma}\left(1, x, 2\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\frac{e^{2 \cdot x} - 1}{\frac{\mathsf{fma}\left(-1, 1, e^{x + x}\right)}{e^{x} + 1}}}\\
\end{array}double f(double x) {
double r13739 = 2.0;
double r13740 = x;
double r13741 = r13739 * r13740;
double r13742 = exp(r13741);
double r13743 = 1.0;
double r13744 = r13742 - r13743;
double r13745 = exp(r13740);
double r13746 = r13745 - r13743;
double r13747 = r13744 / r13746;
double r13748 = sqrt(r13747);
return r13748;
}
double f(double x) {
double r13749 = x;
double r13750 = -3.952485205910728e-11;
bool r13751 = r13749 <= r13750;
double r13752 = 2.0;
double r13753 = r13752 * r13749;
double r13754 = exp(r13753);
double r13755 = 1.0;
double r13756 = r13754 - r13755;
double r13757 = -r13755;
double r13758 = r13749 + r13749;
double r13759 = exp(r13758);
double r13760 = fma(r13757, r13755, r13759);
double r13761 = exp(r13749);
double r13762 = 3.0;
double r13763 = pow(r13761, r13762);
double r13764 = pow(r13755, r13762);
double r13765 = r13763 + r13764;
double r13766 = r13760 / r13765;
double r13767 = r13756 / r13766;
double r13768 = r13761 * r13761;
double r13769 = r13755 * r13755;
double r13770 = r13761 * r13755;
double r13771 = r13769 - r13770;
double r13772 = r13768 + r13771;
double r13773 = r13767 / r13772;
double r13774 = sqrt(r13773);
double r13775 = 5.644932717281176e-17;
bool r13776 = r13749 <= r13775;
double r13777 = 0.5;
double r13778 = 2.0;
double r13779 = pow(r13749, r13778);
double r13780 = fma(r13755, r13749, r13752);
double r13781 = fma(r13777, r13779, r13780);
double r13782 = sqrt(r13781);
double r13783 = r13761 + r13755;
double r13784 = r13760 / r13783;
double r13785 = r13756 / r13784;
double r13786 = sqrt(r13785);
double r13787 = r13776 ? r13782 : r13786;
double r13788 = r13751 ? r13774 : r13787;
return r13788;
}



Bits error versus x
if x < -3.952485205910728e-11Initial program 0.4
rmApplied flip--0.2
Simplified0.0
rmApplied flip3-+0.0
Applied associate-/r/0.0
Applied associate-/r*0.0
if -3.952485205910728e-11 < x < 5.644932717281176e-17Initial program 52.9
Taylor expanded around 0 0.1
Simplified0.1
if 5.644932717281176e-17 < x Initial program 17.1
rmApplied flip--13.0
Simplified1.9
Final simplification0.1
herbie shell --seed 2019362 +o rules:numerics
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))