\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -3.162953279719332850191955246177410998598 \cdot 10^{-7}:\\
\;\;\;\;\sqrt{\frac{\sqrt{1} + \sqrt{e^{2 \cdot x}}}{\frac{e^{x} - 1}{\sqrt{e^{2 \cdot x}} - \sqrt{1}}}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\mathsf{fma}\left(x, 1, \mathsf{fma}\left(x \cdot 0.5, x, 2\right)\right)}\\
\end{array}double f(double x) {
double r1989511 = 2.0;
double r1989512 = x;
double r1989513 = r1989511 * r1989512;
double r1989514 = exp(r1989513);
double r1989515 = 1.0;
double r1989516 = r1989514 - r1989515;
double r1989517 = exp(r1989512);
double r1989518 = r1989517 - r1989515;
double r1989519 = r1989516 / r1989518;
double r1989520 = sqrt(r1989519);
return r1989520;
}
double f(double x) {
double r1989521 = x;
double r1989522 = -3.162953279719333e-07;
bool r1989523 = r1989521 <= r1989522;
double r1989524 = 1.0;
double r1989525 = sqrt(r1989524);
double r1989526 = 2.0;
double r1989527 = r1989526 * r1989521;
double r1989528 = exp(r1989527);
double r1989529 = sqrt(r1989528);
double r1989530 = r1989525 + r1989529;
double r1989531 = exp(r1989521);
double r1989532 = r1989531 - r1989524;
double r1989533 = r1989529 - r1989525;
double r1989534 = r1989532 / r1989533;
double r1989535 = r1989530 / r1989534;
double r1989536 = sqrt(r1989535);
double r1989537 = 0.5;
double r1989538 = r1989521 * r1989537;
double r1989539 = fma(r1989538, r1989521, r1989526);
double r1989540 = fma(r1989521, r1989524, r1989539);
double r1989541 = sqrt(r1989540);
double r1989542 = r1989523 ? r1989536 : r1989541;
return r1989542;
}



Bits error versus x
if x < -3.162953279719333e-07Initial program 0.1
rmApplied add-sqr-sqrt0.1
Applied add-sqr-sqrt0.1
Applied difference-of-squares0.0
Applied associate-/l*0.0
if -3.162953279719333e-07 < x Initial program 34.2
Taylor expanded around 0 6.4
Simplified6.4
Final simplification0.8
herbie shell --seed 2019192 +o rules:numerics
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
(sqrt (/ (- (exp (* 2.0 x)) 1.0) (- (exp x) 1.0))))