\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -1.27319002816284202 \cdot 10^{-5} \lor \neg \left(x \le 3.15507236008555292 \cdot 10^{-9}\right):\\
\;\;\;\;\sqrt{\frac{\left(\sqrt{e^{2 \cdot x}} + \sqrt{1}\right) \cdot \left(\sqrt{e^{2 \cdot x}} - \sqrt{1}\right)}{e^{x} - 1}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{0.5 \cdot {x}^{2} + \left(1 \cdot x + 2\right)}\\
\end{array}double f(double x) {
double r23862 = 2.0;
double r23863 = x;
double r23864 = r23862 * r23863;
double r23865 = exp(r23864);
double r23866 = 1.0;
double r23867 = r23865 - r23866;
double r23868 = exp(r23863);
double r23869 = r23868 - r23866;
double r23870 = r23867 / r23869;
double r23871 = sqrt(r23870);
return r23871;
}
double f(double x) {
double r23872 = x;
double r23873 = -1.273190028162842e-05;
bool r23874 = r23872 <= r23873;
double r23875 = 3.155072360085553e-09;
bool r23876 = r23872 <= r23875;
double r23877 = !r23876;
bool r23878 = r23874 || r23877;
double r23879 = 2.0;
double r23880 = r23879 * r23872;
double r23881 = exp(r23880);
double r23882 = sqrt(r23881);
double r23883 = 1.0;
double r23884 = sqrt(r23883);
double r23885 = r23882 + r23884;
double r23886 = r23882 - r23884;
double r23887 = r23885 * r23886;
double r23888 = exp(r23872);
double r23889 = r23888 - r23883;
double r23890 = r23887 / r23889;
double r23891 = sqrt(r23890);
double r23892 = 0.5;
double r23893 = 2.0;
double r23894 = pow(r23872, r23893);
double r23895 = r23892 * r23894;
double r23896 = r23883 * r23872;
double r23897 = r23896 + r23879;
double r23898 = r23895 + r23897;
double r23899 = sqrt(r23898);
double r23900 = r23878 ? r23891 : r23899;
return r23900;
}



Bits error versus x
Results
if x < -1.273190028162842e-05 or 3.155072360085553e-09 < x Initial program 0.5
rmApplied add-sqr-sqrt0.5
Applied add-sqr-sqrt0.4
Applied difference-of-squares0.2
if -1.273190028162842e-05 < x < 3.155072360085553e-09Initial program 39.9
rmApplied add-sqr-sqrt39.9
Applied add-sqr-sqrt37.6
Applied difference-of-squares32.7
rmApplied sub-neg32.7
Applied distribute-lft-in37.7
Simplified42.1
Simplified42.1
Taylor expanded around 0 0.1
Final simplification0.1
herbie shell --seed 2020035
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))