\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le \frac{-2434735197277449}{147573952589676412928}:\\
\;\;\;\;\sqrt{\frac{\sqrt{e^{2 \cdot x}} + \sqrt{1}}{1}} \cdot \sqrt{\frac{\sqrt{\sqrt{e^{2 \cdot x}}} + \sqrt{\sqrt{1}}}{\sqrt{e^{x}} + \sqrt{1}} \cdot \frac{\sqrt{\sqrt{e^{2 \cdot x}}} - \sqrt{\sqrt{1}}}{\sqrt{e^{x}} - \sqrt{1}}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{x \cdot \left(1 + \frac{1}{2} \cdot x\right) + 2}\\
\end{array}double f(double x) {
double r27119 = 2.0;
double r27120 = x;
double r27121 = r27119 * r27120;
double r27122 = exp(r27121);
double r27123 = 1.0;
double r27124 = r27122 - r27123;
double r27125 = exp(r27120);
double r27126 = r27125 - r27123;
double r27127 = r27124 / r27126;
double r27128 = sqrt(r27127);
return r27128;
}
double f(double x) {
double r27129 = x;
double r27130 = -2434735197277449.0;
double r27131 = 1.4757395258967641e+20;
double r27132 = r27130 / r27131;
bool r27133 = r27129 <= r27132;
double r27134 = 2.0;
double r27135 = r27134 * r27129;
double r27136 = exp(r27135);
double r27137 = sqrt(r27136);
double r27138 = 1.0;
double r27139 = sqrt(r27138);
double r27140 = r27137 + r27139;
double r27141 = 1.0;
double r27142 = r27140 / r27141;
double r27143 = sqrt(r27142);
double r27144 = sqrt(r27137);
double r27145 = sqrt(r27139);
double r27146 = r27144 + r27145;
double r27147 = exp(r27129);
double r27148 = sqrt(r27147);
double r27149 = r27148 + r27139;
double r27150 = r27146 / r27149;
double r27151 = r27144 - r27145;
double r27152 = r27148 - r27139;
double r27153 = r27151 / r27152;
double r27154 = r27150 * r27153;
double r27155 = sqrt(r27154);
double r27156 = r27143 * r27155;
double r27157 = r27138 / r27134;
double r27158 = r27157 * r27129;
double r27159 = r27138 + r27158;
double r27160 = r27129 * r27159;
double r27161 = r27160 + r27134;
double r27162 = sqrt(r27161);
double r27163 = r27133 ? r27156 : r27162;
return r27163;
}



Bits error versus x
Results
if x < -1.6498407439469584e-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 add-sqr-sqrt0.0
Applied difference-of-squares0.1
Applied add-sqr-sqrt0.1
Applied sqrt-prod0.1
Applied add-sqr-sqrt0.1
Applied sqrt-prod0.1
Applied difference-of-squares0.0
Applied times-frac0.0
if -1.6498407439469584e-05 < x Initial program 34.4
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))))