\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -2.517756586909433448818844716085219221681 \cdot 10^{-12}:\\
\;\;\;\;\sqrt{\frac{\sqrt{1} + \sqrt{e^{2 \cdot x}}}{\frac{e^{x} - 1}{e^{1 \cdot x} - \sqrt{1}}}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2 + x \cdot \left(1 + x \cdot 0.5\right)}\\
\end{array}double f(double x) {
double r1250771 = 2.0;
double r1250772 = x;
double r1250773 = r1250771 * r1250772;
double r1250774 = exp(r1250773);
double r1250775 = 1.0;
double r1250776 = r1250774 - r1250775;
double r1250777 = exp(r1250772);
double r1250778 = r1250777 - r1250775;
double r1250779 = r1250776 / r1250778;
double r1250780 = sqrt(r1250779);
return r1250780;
}
double f(double x) {
double r1250781 = x;
double r1250782 = -2.5177565869094334e-12;
bool r1250783 = r1250781 <= r1250782;
double r1250784 = 1.0;
double r1250785 = sqrt(r1250784);
double r1250786 = 2.0;
double r1250787 = r1250786 * r1250781;
double r1250788 = exp(r1250787);
double r1250789 = sqrt(r1250788);
double r1250790 = r1250785 + r1250789;
double r1250791 = exp(r1250781);
double r1250792 = r1250791 - r1250784;
double r1250793 = r1250784 * r1250781;
double r1250794 = exp(r1250793);
double r1250795 = r1250794 - r1250785;
double r1250796 = r1250792 / r1250795;
double r1250797 = r1250790 / r1250796;
double r1250798 = sqrt(r1250797);
double r1250799 = 0.5;
double r1250800 = r1250781 * r1250799;
double r1250801 = r1250784 + r1250800;
double r1250802 = r1250781 * r1250801;
double r1250803 = r1250786 + r1250802;
double r1250804 = sqrt(r1250803);
double r1250805 = r1250783 ? r1250798 : r1250804;
return r1250805;
}



Bits error versus x
Results
if x < -2.5177565869094334e-12Initial program 0.5
rmApplied add-sqr-sqrt0.5
Applied add-sqr-sqrt0.5
Applied difference-of-squares0.2
Applied associate-/l*0.1
rmApplied add-log-exp0.1
Applied exp-to-pow0.1
Applied sqrt-pow10.0
Taylor expanded around inf 0.0
if -2.5177565869094334e-12 < x Initial program 35.3
Taylor expanded around 0 7.4
Simplified7.4
Final simplification0.8
herbie shell --seed 2019170
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
(sqrt (/ (- (exp (* 2.0 x)) 1.0) (- (exp x) 1.0))))