\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -2.42926588964696801061903669305408470791 \cdot 10^{-5}:\\
\;\;\;\;\sqrt{\left(\sqrt{e^{2 \cdot x}} + \sqrt{1}\right) \cdot \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 r15988 = 2.0;
double r15989 = x;
double r15990 = r15988 * r15989;
double r15991 = exp(r15990);
double r15992 = 1.0;
double r15993 = r15991 - r15992;
double r15994 = exp(r15989);
double r15995 = r15994 - r15992;
double r15996 = r15993 / r15995;
double r15997 = sqrt(r15996);
return r15997;
}
double f(double x) {
double r15998 = x;
double r15999 = -2.429265889646968e-05;
bool r16000 = r15998 <= r15999;
double r16001 = 2.0;
double r16002 = r16001 * r15998;
double r16003 = exp(r16002);
double r16004 = sqrt(r16003);
double r16005 = 1.0;
double r16006 = sqrt(r16005);
double r16007 = r16004 + r16006;
double r16008 = r16004 - r16006;
double r16009 = exp(r15998);
double r16010 = r16009 - r16005;
double r16011 = r16008 / r16010;
double r16012 = r16007 * r16011;
double r16013 = sqrt(r16012);
double r16014 = 0.5;
double r16015 = r16014 * r15998;
double r16016 = r16005 + r16015;
double r16017 = r15998 * r16016;
double r16018 = r16017 + r16001;
double r16019 = sqrt(r16018);
double r16020 = r16000 ? r16013 : r16019;
return r16020;
}



Bits error versus x
Results
if x < -2.429265889646968e-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
Simplified0.0
if -2.429265889646968e-05 < x Initial program 33.7
Taylor expanded around 0 6.8
Simplified6.8
Final simplification0.9
herbie shell --seed 2019354
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))