\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -1.029656646791675586301382377962809755445 \cdot 10^{-5}:\\
\;\;\;\;\sqrt{\frac{\sqrt{\sqrt{e^{2 \cdot x}}} \cdot \sqrt{\sqrt{e^{2 \cdot x}}} + \sqrt{1}}{1}} \cdot \sqrt{\frac{\sqrt{e^{2 \cdot x}} - \sqrt{1}}{e^{x} - 1}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{x \cdot \left(1 + 0.5 \cdot x\right) + 2}\\
\end{array}double f(double x) {
double r10488 = 2.0;
double r10489 = x;
double r10490 = r10488 * r10489;
double r10491 = exp(r10490);
double r10492 = 1.0;
double r10493 = r10491 - r10492;
double r10494 = exp(r10489);
double r10495 = r10494 - r10492;
double r10496 = r10493 / r10495;
double r10497 = sqrt(r10496);
return r10497;
}
double f(double x) {
double r10498 = x;
double r10499 = -1.0296566467916756e-05;
bool r10500 = r10498 <= r10499;
double r10501 = 2.0;
double r10502 = r10501 * r10498;
double r10503 = exp(r10502);
double r10504 = sqrt(r10503);
double r10505 = sqrt(r10504);
double r10506 = r10505 * r10505;
double r10507 = 1.0;
double r10508 = sqrt(r10507);
double r10509 = r10506 + r10508;
double r10510 = 1.0;
double r10511 = r10509 / r10510;
double r10512 = sqrt(r10511);
double r10513 = r10504 - r10508;
double r10514 = exp(r10498);
double r10515 = r10514 - r10507;
double r10516 = r10513 / r10515;
double r10517 = sqrt(r10516);
double r10518 = r10512 * r10517;
double r10519 = 0.5;
double r10520 = r10519 * r10498;
double r10521 = r10507 + r10520;
double r10522 = r10498 * r10521;
double r10523 = r10522 + r10501;
double r10524 = sqrt(r10523);
double r10525 = r10500 ? r10518 : r10524;
return r10525;
}



Bits error versus x
Results
if x < -1.0296566467916756e-05Initial program 0.1
rmApplied *-un-lft-identity0.1
Applied add-sqr-sqrt0.1
Applied add-sqr-sqrt0.1
Applied difference-of-squares0.0
Applied times-frac0.0
Applied sqrt-prod0.0
rmApplied add-sqr-sqrt0.0
Applied sqrt-prod0.0
if -1.0296566467916756e-05 < x Initial program 33.2
Taylor expanded around 0 6.1
Simplified6.1
Final simplification0.8
herbie shell --seed 2019353
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))