\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -5.620247555861490600456011289930965376518 \cdot 10^{-17}:\\
\;\;\;\;\sqrt{\left(\sqrt{1} + \left|{\left(\mathsf{log1p}\left(\mathsf{expm1}\left(\sqrt{e^{x}}\right)\right)\right)}^{2}\right|\right) \cdot \frac{\sqrt{{\left(e^{x}\right)}^{2}} - \sqrt{1}}{e^{x} - 1}}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(0.5, \frac{x}{\sqrt{2}}, \sqrt{2}\right) + \frac{x \cdot x}{\sqrt{2}} \cdot \left(0.25 - \frac{0.125}{2}\right)\\
\end{array}double f(double x) {
double r28364 = 2.0;
double r28365 = x;
double r28366 = r28364 * r28365;
double r28367 = exp(r28366);
double r28368 = 1.0;
double r28369 = r28367 - r28368;
double r28370 = exp(r28365);
double r28371 = r28370 - r28368;
double r28372 = r28369 / r28371;
double r28373 = sqrt(r28372);
return r28373;
}
double f(double x) {
double r28374 = x;
double r28375 = -5.62024755586149e-17;
bool r28376 = r28374 <= r28375;
double r28377 = 1.0;
double r28378 = sqrt(r28377);
double r28379 = exp(r28374);
double r28380 = sqrt(r28379);
double r28381 = expm1(r28380);
double r28382 = log1p(r28381);
double r28383 = 2.0;
double r28384 = pow(r28382, r28383);
double r28385 = fabs(r28384);
double r28386 = r28378 + r28385;
double r28387 = pow(r28379, r28383);
double r28388 = sqrt(r28387);
double r28389 = r28388 - r28378;
double r28390 = r28379 - r28377;
double r28391 = r28389 / r28390;
double r28392 = r28386 * r28391;
double r28393 = sqrt(r28392);
double r28394 = 0.5;
double r28395 = sqrt(r28383);
double r28396 = r28374 / r28395;
double r28397 = fma(r28394, r28396, r28395);
double r28398 = r28374 * r28374;
double r28399 = r28398 / r28395;
double r28400 = 0.25;
double r28401 = 0.125;
double r28402 = r28401 / r28383;
double r28403 = r28400 - r28402;
double r28404 = r28399 * r28403;
double r28405 = r28397 + r28404;
double r28406 = r28376 ? r28393 : r28405;
return r28406;
}



Bits error versus x
if x < -5.62024755586149e-17Initial program 0.9
rmApplied *-un-lft-identity0.9
Applied add-sqr-sqrt0.9
Applied add-sqr-sqrt0.6
Applied difference-of-squares0.3
Applied times-frac0.3
Simplified0.3
Simplified0.0
rmApplied add-sqr-sqrt0.0
Applied unpow-prod-down0.0
Applied rem-sqrt-square0.0
rmApplied log1p-expm1-u0.0
if -5.62024755586149e-17 < x Initial program 37.9
Taylor expanded around 0 9.6
Simplified9.6
Final simplification0.9
herbie shell --seed 2019195 +o rules:numerics
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
(sqrt (/ (- (exp (* 2.0 x)) 1.0) (- (exp x) 1.0))))