\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 r23530 = 2.0;
double r23531 = x;
double r23532 = r23530 * r23531;
double r23533 = exp(r23532);
double r23534 = 1.0;
double r23535 = r23533 - r23534;
double r23536 = exp(r23531);
double r23537 = r23536 - r23534;
double r23538 = r23535 / r23537;
double r23539 = sqrt(r23538);
return r23539;
}
double f(double x) {
double r23540 = x;
double r23541 = -3.356135868947112e-05;
bool r23542 = r23540 <= r23541;
double r23543 = 2.0;
double r23544 = r23543 * r23540;
double r23545 = exp(r23544);
double r23546 = sqrt(r23545);
double r23547 = 1.0;
double r23548 = -r23547;
double r23549 = fma(r23546, r23546, r23548);
double r23550 = exp(r23540);
double r23551 = r23550 - r23547;
double r23552 = r23549 / r23551;
double r23553 = sqrt(r23552);
double r23554 = 0.5;
double r23555 = fma(r23554, r23540, r23547);
double r23556 = fma(r23540, r23555, r23543);
double r23557 = sqrt(r23556);
double r23558 = r23542 ? r23553 : r23557;
return r23558;
}



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))))