\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -1.029656646791675586301382377962809755445 \cdot 10^{-5}:\\
\;\;\;\;\sqrt{\frac{e^{2 \cdot x} - 1}{\mathsf{fma}\left(-1, 1, e^{x + x}\right)} \cdot \left(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 r10850 = 2.0;
double r10851 = x;
double r10852 = r10850 * r10851;
double r10853 = exp(r10852);
double r10854 = 1.0;
double r10855 = r10853 - r10854;
double r10856 = exp(r10851);
double r10857 = r10856 - r10854;
double r10858 = r10855 / r10857;
double r10859 = sqrt(r10858);
return r10859;
}
double f(double x) {
double r10860 = x;
double r10861 = -1.0296566467916756e-05;
bool r10862 = r10860 <= r10861;
double r10863 = 2.0;
double r10864 = r10863 * r10860;
double r10865 = exp(r10864);
double r10866 = 1.0;
double r10867 = r10865 - r10866;
double r10868 = -r10866;
double r10869 = r10860 + r10860;
double r10870 = exp(r10869);
double r10871 = fma(r10868, r10866, r10870);
double r10872 = r10867 / r10871;
double r10873 = exp(r10860);
double r10874 = r10873 + r10866;
double r10875 = r10872 * r10874;
double r10876 = sqrt(r10875);
double r10877 = 0.5;
double r10878 = 2.0;
double r10879 = pow(r10860, r10878);
double r10880 = fma(r10866, r10860, r10863);
double r10881 = fma(r10877, r10879, r10880);
double r10882 = sqrt(r10881);
double r10883 = r10862 ? r10876 : r10882;
return r10883;
}



Bits error versus x
if x < -1.0296566467916756e-05Initial program 0.1
rmApplied flip--0.0
Applied associate-/r/0.0
Simplified0.0
if -1.0296566467916756e-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))))