\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -1.138987560482873366194365993830928118768 \cdot 10^{-5}:\\
\;\;\;\;\sqrt{\frac{e^{2 \cdot x} - 1}{\mathsf{fma}\left(-1, 1, e^{x + x}\right)} \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 r10861 = 2.0;
double r10862 = x;
double r10863 = r10861 * r10862;
double r10864 = exp(r10863);
double r10865 = 1.0;
double r10866 = r10864 - r10865;
double r10867 = exp(r10862);
double r10868 = r10867 - r10865;
double r10869 = r10866 / r10868;
double r10870 = sqrt(r10869);
return r10870;
}
double f(double x) {
double r10871 = x;
double r10872 = -1.1389875604828734e-05;
bool r10873 = r10871 <= r10872;
double r10874 = 2.0;
double r10875 = r10874 * r10871;
double r10876 = exp(r10875);
double r10877 = 1.0;
double r10878 = r10876 - r10877;
double r10879 = -r10877;
double r10880 = r10871 + r10871;
double r10881 = exp(r10880);
double r10882 = fma(r10879, r10877, r10881);
double r10883 = r10878 / r10882;
double r10884 = exp(r10871);
double r10885 = sqrt(r10884);
double r10886 = fma(r10885, r10885, r10877);
double r10887 = r10883 * r10886;
double r10888 = sqrt(r10887);
double r10889 = 0.5;
double r10890 = 2.0;
double r10891 = pow(r10871, r10890);
double r10892 = fma(r10877, r10871, r10874);
double r10893 = fma(r10889, r10891, r10892);
double r10894 = sqrt(r10893);
double r10895 = r10873 ? r10888 : r10894;
return r10895;
}



Bits error versus x
if x < -1.1389875604828734e-05Initial program 0.1
rmApplied flip--0.0
Applied associate-/r/0.0
Simplified0.0
rmApplied add-sqr-sqrt0.0
Applied fma-def0.0
if -1.1389875604828734e-05 < x Initial program 33.2
Taylor expanded around 0 6.1
Simplified6.1
Final simplification0.8
herbie shell --seed 2019353 +o rules:numerics
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))