\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -3.356135868947112289167877818840679537971 \cdot 10^{-5}:\\
\;\;\;\;\sqrt{\frac{\mathsf{fma}\left(\sqrt{e^{2 \cdot x}}, \sqrt{e^{2 \cdot x}}, -1\right)}{e^{x} - 1}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\mathsf{fma}\left(x, \mathsf{fma}\left(0.5, x, 1\right), 2\right)}\\
\end{array}double f(double x) {
double r23492 = 2.0;
double r23493 = x;
double r23494 = r23492 * r23493;
double r23495 = exp(r23494);
double r23496 = 1.0;
double r23497 = r23495 - r23496;
double r23498 = exp(r23493);
double r23499 = r23498 - r23496;
double r23500 = r23497 / r23499;
double r23501 = sqrt(r23500);
return r23501;
}
double f(double x) {
double r23502 = x;
double r23503 = -3.356135868947112e-05;
bool r23504 = r23502 <= r23503;
double r23505 = 2.0;
double r23506 = r23505 * r23502;
double r23507 = exp(r23506);
double r23508 = sqrt(r23507);
double r23509 = 1.0;
double r23510 = -r23509;
double r23511 = fma(r23508, r23508, r23510);
double r23512 = exp(r23502);
double r23513 = r23512 - r23509;
double r23514 = r23511 / r23513;
double r23515 = sqrt(r23514);
double r23516 = 0.5;
double r23517 = fma(r23516, r23502, r23509);
double r23518 = fma(r23502, r23517, r23505);
double r23519 = sqrt(r23518);
double r23520 = r23504 ? r23515 : r23519;
return r23520;
}



Bits error versus x
if x < -3.356135868947112e-05Initial program 0.1
rmApplied add-sqr-sqrt0.1
Applied fma-neg0.0
if -3.356135868947112e-05 < x Initial program 34.2
Taylor expanded around 0 6.2
Simplified6.2
Final simplification0.8
herbie shell --seed 2019323 +o rules:numerics
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))