\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -4.527236342338421397557006909014021278637 \cdot 10^{-9}:\\
\;\;\;\;\sqrt{\frac{\sqrt{1} + \sqrt{e^{2 \cdot x}}}{\frac{e^{x} - 1}{\sqrt{e^{2 \cdot x}} - \sqrt{1}}}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2 + x \cdot \left(x \cdot 0.5 + 1\right)}\\
\end{array}double f(double x) {
double r1869202 = 2.0;
double r1869203 = x;
double r1869204 = r1869202 * r1869203;
double r1869205 = exp(r1869204);
double r1869206 = 1.0;
double r1869207 = r1869205 - r1869206;
double r1869208 = exp(r1869203);
double r1869209 = r1869208 - r1869206;
double r1869210 = r1869207 / r1869209;
double r1869211 = sqrt(r1869210);
return r1869211;
}
double f(double x) {
double r1869212 = x;
double r1869213 = -4.527236342338421e-09;
bool r1869214 = r1869212 <= r1869213;
double r1869215 = 1.0;
double r1869216 = sqrt(r1869215);
double r1869217 = 2.0;
double r1869218 = r1869217 * r1869212;
double r1869219 = exp(r1869218);
double r1869220 = sqrt(r1869219);
double r1869221 = r1869216 + r1869220;
double r1869222 = exp(r1869212);
double r1869223 = r1869222 - r1869215;
double r1869224 = r1869220 - r1869216;
double r1869225 = r1869223 / r1869224;
double r1869226 = r1869221 / r1869225;
double r1869227 = sqrt(r1869226);
double r1869228 = 0.5;
double r1869229 = r1869212 * r1869228;
double r1869230 = r1869229 + r1869215;
double r1869231 = r1869212 * r1869230;
double r1869232 = r1869217 + r1869231;
double r1869233 = sqrt(r1869232);
double r1869234 = r1869214 ? r1869227 : r1869233;
return r1869234;
}



Bits error versus x
Results
if x < -4.527236342338421e-09Initial program 0.3
rmApplied add-sqr-sqrt0.3
Applied add-sqr-sqrt0.3
Applied difference-of-squares0.0
Applied associate-/l*0.0
if -4.527236342338421e-09 < x Initial program 34.9
Taylor expanded around 0 7.5
Simplified7.5
Final simplification0.9
herbie shell --seed 2019168
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
(sqrt (/ (- (exp (* 2.0 x)) 1.0) (- (exp x) 1.0))))