\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -1.293549828942968312194372434010088052064 \cdot 10^{-15}:\\
\;\;\;\;\sqrt{\frac{\sqrt{e^{2 \cdot x}} + \sqrt{1}}{\frac{e^{x} - 1}{{\left(e^{2}\right)}^{\left(\frac{x}{2}\right)} - \sqrt{1}}}}\\
\mathbf{else}:\\
\;\;\;\;0.5 \cdot \frac{x}{\sqrt{2}} + \left(\sqrt{2} + \frac{{x}^{2}}{\sqrt{2}} \cdot \left(0.25 - \frac{0.125}{2}\right)\right)\\
\end{array}double f(double x) {
double r19387 = 2.0;
double r19388 = x;
double r19389 = r19387 * r19388;
double r19390 = exp(r19389);
double r19391 = 1.0;
double r19392 = r19390 - r19391;
double r19393 = exp(r19388);
double r19394 = r19393 - r19391;
double r19395 = r19392 / r19394;
double r19396 = sqrt(r19395);
return r19396;
}
double f(double x) {
double r19397 = x;
double r19398 = -1.2935498289429683e-15;
bool r19399 = r19397 <= r19398;
double r19400 = 2.0;
double r19401 = r19400 * r19397;
double r19402 = exp(r19401);
double r19403 = sqrt(r19402);
double r19404 = 1.0;
double r19405 = sqrt(r19404);
double r19406 = r19403 + r19405;
double r19407 = exp(r19397);
double r19408 = r19407 - r19404;
double r19409 = exp(r19400);
double r19410 = 2.0;
double r19411 = r19397 / r19410;
double r19412 = pow(r19409, r19411);
double r19413 = r19412 - r19405;
double r19414 = r19408 / r19413;
double r19415 = r19406 / r19414;
double r19416 = sqrt(r19415);
double r19417 = 0.5;
double r19418 = sqrt(r19400);
double r19419 = r19397 / r19418;
double r19420 = r19417 * r19419;
double r19421 = pow(r19397, r19410);
double r19422 = r19421 / r19418;
double r19423 = 0.25;
double r19424 = 0.125;
double r19425 = r19424 / r19400;
double r19426 = r19423 - r19425;
double r19427 = r19422 * r19426;
double r19428 = r19418 + r19427;
double r19429 = r19420 + r19428;
double r19430 = r19399 ? r19416 : r19429;
return r19430;
}



Bits error versus x
Results
if x < -1.2935498289429683e-15Initial program 0.7
rmApplied add-sqr-sqrt0.7
Applied add-sqr-sqrt0.6
Applied difference-of-squares0.2
Applied associate-/l*0.2
rmApplied add-log-exp0.2
Applied exp-to-pow0.2
Applied sqrt-pow10.0
if -1.2935498289429683e-15 < x Initial program 36.5
Taylor expanded around 0 8.4
Simplified8.4
Final simplification0.9
herbie shell --seed 2019297
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))