\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -7.26854291605878706 \cdot 10^{-16}:\\
\;\;\;\;\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x + x} - 1 \cdot 1} \cdot \mathsf{fma}\left(\sqrt{e^{x}}, \sqrt{e^{x}}, 1\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\mathsf{fma}\left(0.5, {x}^{2}, \mathsf{fma}\left(1, x, 2\right)\right)}\\
\end{array}double f(double x) {
double r12827 = 2.0;
double r12828 = x;
double r12829 = r12827 * r12828;
double r12830 = exp(r12829);
double r12831 = 1.0;
double r12832 = r12830 - r12831;
double r12833 = exp(r12828);
double r12834 = r12833 - r12831;
double r12835 = r12832 / r12834;
double r12836 = sqrt(r12835);
return r12836;
}
double f(double x) {
double r12837 = x;
double r12838 = -7.268542916058787e-16;
bool r12839 = r12837 <= r12838;
double r12840 = 2.0;
double r12841 = r12840 * r12837;
double r12842 = exp(r12841);
double r12843 = 1.0;
double r12844 = r12842 - r12843;
double r12845 = r12837 + r12837;
double r12846 = exp(r12845);
double r12847 = r12843 * r12843;
double r12848 = r12846 - r12847;
double r12849 = r12844 / r12848;
double r12850 = exp(r12837);
double r12851 = sqrt(r12850);
double r12852 = fma(r12851, r12851, r12843);
double r12853 = r12849 * r12852;
double r12854 = sqrt(r12853);
double r12855 = 0.5;
double r12856 = 2.0;
double r12857 = pow(r12837, r12856);
double r12858 = fma(r12843, r12837, r12840);
double r12859 = fma(r12855, r12857, r12858);
double r12860 = sqrt(r12859);
double r12861 = r12839 ? r12854 : r12860;
return r12861;
}



Bits error versus x
if x < -7.268542916058787e-16Initial program 0.7
rmApplied flip--0.5
Applied associate-/r/0.5
Simplified0.0
rmApplied add-sqr-sqrt0.0
Applied fma-def0.0
if -7.268542916058787e-16 < x Initial program 37.3
Taylor expanded around 0 7.4
Simplified7.4
Final simplification0.7
herbie shell --seed 2020046 +o rules:numerics
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))