\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -8.58057934834184693 \cdot 10^{-6}:\\
\;\;\;\;\sqrt{\frac{e^{2 \cdot x} - 1}{\frac{e^{x + x} - 1 \cdot 1}{e^{x} + 1}}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\mathsf{fma}\left(0.5, {x}^{2}, \mathsf{fma}\left(1, x, 2\right)\right)}\\
\end{array}double f(double x) {
double r20419 = 2.0;
double r20420 = x;
double r20421 = r20419 * r20420;
double r20422 = exp(r20421);
double r20423 = 1.0;
double r20424 = r20422 - r20423;
double r20425 = exp(r20420);
double r20426 = r20425 - r20423;
double r20427 = r20424 / r20426;
double r20428 = sqrt(r20427);
return r20428;
}
double f(double x) {
double r20429 = x;
double r20430 = -8.580579348341847e-06;
bool r20431 = r20429 <= r20430;
double r20432 = 2.0;
double r20433 = r20432 * r20429;
double r20434 = exp(r20433);
double r20435 = 1.0;
double r20436 = r20434 - r20435;
double r20437 = r20429 + r20429;
double r20438 = exp(r20437);
double r20439 = r20435 * r20435;
double r20440 = r20438 - r20439;
double r20441 = exp(r20429);
double r20442 = r20441 + r20435;
double r20443 = r20440 / r20442;
double r20444 = r20436 / r20443;
double r20445 = sqrt(r20444);
double r20446 = 0.5;
double r20447 = 2.0;
double r20448 = pow(r20429, r20447);
double r20449 = fma(r20435, r20429, r20432);
double r20450 = fma(r20446, r20448, r20449);
double r20451 = sqrt(r20450);
double r20452 = r20431 ? r20445 : r20451;
return r20452;
}



Bits error versus x
if x < -8.580579348341847e-06Initial program 0.1
rmApplied flip--0.1
Simplified0.0
if -8.580579348341847e-06 < x Initial program 34.5
rmApplied flip--31.3
Simplified21.8
rmApplied add-cbrt-cube22.1
Applied add-cbrt-cube22.6
Applied cbrt-undiv22.5
Applied add-cbrt-cube22.5
Applied cbrt-undiv22.5
Simplified22.1
Taylor expanded around 0 6.1
Simplified6.1
Final simplification0.8
herbie shell --seed 2020042 +o rules:numerics
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))