\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -1.34331473476043902905803159586461958952 \cdot 10^{-5}:\\
\;\;\;\;\sqrt{\left(e^{2 \cdot x} - 1\right) \cdot \frac{1}{e^{x + x} - 1 \cdot 1}} \cdot \sqrt{e^{x} + 1}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2 + x \cdot \left(1 + 0.5 \cdot x\right)}\\
\end{array}double f(double x) {
double r23068 = 2.0;
double r23069 = x;
double r23070 = r23068 * r23069;
double r23071 = exp(r23070);
double r23072 = 1.0;
double r23073 = r23071 - r23072;
double r23074 = exp(r23069);
double r23075 = r23074 - r23072;
double r23076 = r23073 / r23075;
double r23077 = sqrt(r23076);
return r23077;
}
double f(double x) {
double r23078 = x;
double r23079 = -1.343314734760439e-05;
bool r23080 = r23078 <= r23079;
double r23081 = 2.0;
double r23082 = r23081 * r23078;
double r23083 = exp(r23082);
double r23084 = 1.0;
double r23085 = r23083 - r23084;
double r23086 = 1.0;
double r23087 = r23078 + r23078;
double r23088 = exp(r23087);
double r23089 = r23084 * r23084;
double r23090 = r23088 - r23089;
double r23091 = r23086 / r23090;
double r23092 = r23085 * r23091;
double r23093 = sqrt(r23092);
double r23094 = exp(r23078);
double r23095 = r23094 + r23084;
double r23096 = sqrt(r23095);
double r23097 = r23093 * r23096;
double r23098 = 0.5;
double r23099 = r23098 * r23078;
double r23100 = r23084 + r23099;
double r23101 = r23078 * r23100;
double r23102 = r23081 + r23101;
double r23103 = sqrt(r23102);
double r23104 = r23080 ? r23097 : r23103;
return r23104;
}



Bits error versus x
Results
if x < -1.343314734760439e-05Initial program 0.1
rmApplied flip--0.1
Applied associate-/r/0.1
Applied sqrt-prod0.1
Simplified0.0
rmApplied div-inv0.0
if -1.343314734760439e-05 < x Initial program 34.5
Taylor expanded around 0 6.4
Simplified6.4
Final simplification0.9
herbie shell --seed 2019303
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))