\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -5.504206308688681527034029884124844037593 \cdot 10^{-17}:\\
\;\;\;\;\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x + x} - 1 \cdot 1}} \cdot \mathsf{hypot}\left(\sqrt{e^{x}}, \sqrt{1}\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{{x}^{2}}{\sqrt{2}}, 0.25 - \frac{0.125}{2}, \mathsf{fma}\left(\frac{x}{\sqrt{2}}, 0.5, \sqrt{2}\right)\right)\\
\end{array}double f(double x) {
double r18481 = 2.0;
double r18482 = x;
double r18483 = r18481 * r18482;
double r18484 = exp(r18483);
double r18485 = 1.0;
double r18486 = r18484 - r18485;
double r18487 = exp(r18482);
double r18488 = r18487 - r18485;
double r18489 = r18486 / r18488;
double r18490 = sqrt(r18489);
return r18490;
}
double f(double x) {
double r18491 = x;
double r18492 = -5.5042063086886815e-17;
bool r18493 = r18491 <= r18492;
double r18494 = 2.0;
double r18495 = r18494 * r18491;
double r18496 = exp(r18495);
double r18497 = 1.0;
double r18498 = r18496 - r18497;
double r18499 = r18491 + r18491;
double r18500 = exp(r18499);
double r18501 = r18497 * r18497;
double r18502 = r18500 - r18501;
double r18503 = r18498 / r18502;
double r18504 = sqrt(r18503);
double r18505 = exp(r18491);
double r18506 = sqrt(r18505);
double r18507 = sqrt(r18497);
double r18508 = hypot(r18506, r18507);
double r18509 = r18504 * r18508;
double r18510 = 2.0;
double r18511 = pow(r18491, r18510);
double r18512 = sqrt(r18494);
double r18513 = r18511 / r18512;
double r18514 = 0.25;
double r18515 = 0.125;
double r18516 = r18515 / r18494;
double r18517 = r18514 - r18516;
double r18518 = r18491 / r18512;
double r18519 = 0.5;
double r18520 = fma(r18518, r18519, r18512);
double r18521 = fma(r18513, r18517, r18520);
double r18522 = r18493 ? r18509 : r18521;
return r18522;
}



Bits error versus x
if x < -5.5042063086886815e-17Initial program 0.9
rmApplied flip--0.7
Applied associate-/r/0.7
Applied sqrt-prod0.7
Simplified0.0
rmApplied add-sqr-sqrt0.0
Applied add-sqr-sqrt0.0
Applied hypot-def0.0
if -5.5042063086886815e-17 < x Initial program 37.9
Taylor expanded around 0 8.4
Simplified8.4
Final simplification0.8
herbie shell --seed 2019351 +o rules:numerics
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))