\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -1.11558615421983944 \cdot 10^{-16}:\\
\;\;\;\;\sqrt{\left({\left(\sqrt{e^{2}}\right)}^{\left(\frac{1}{2} \cdot x\right)} \cdot {\left(\sqrt{e^{2}}\right)}^{\left(\frac{1}{2} \cdot x\right)} + \sqrt{1}\right) \cdot \frac{{\left(e^{2}\right)}^{\left(\frac{1}{2} \cdot x\right)} - \sqrt{1}}{e^{x} - 1}}\\
\mathbf{else}:\\
\;\;\;\;0.5 \cdot \frac{x}{\sqrt{2}} + \left(\sqrt{2} + \frac{{x}^{2}}{\sqrt{2}} \cdot \left(0.25 - \frac{0.125}{2}\right)\right)\\
\end{array}double f(double x) {
double r10646 = 2.0;
double r10647 = x;
double r10648 = r10646 * r10647;
double r10649 = exp(r10648);
double r10650 = 1.0;
double r10651 = r10649 - r10650;
double r10652 = exp(r10647);
double r10653 = r10652 - r10650;
double r10654 = r10651 / r10653;
double r10655 = sqrt(r10654);
return r10655;
}
double f(double x) {
double r10656 = x;
double r10657 = -1.1155861542198394e-16;
bool r10658 = r10656 <= r10657;
double r10659 = 2.0;
double r10660 = exp(r10659);
double r10661 = sqrt(r10660);
double r10662 = 0.5;
double r10663 = r10662 * r10656;
double r10664 = pow(r10661, r10663);
double r10665 = r10664 * r10664;
double r10666 = 1.0;
double r10667 = sqrt(r10666);
double r10668 = r10665 + r10667;
double r10669 = pow(r10660, r10663);
double r10670 = r10669 - r10667;
double r10671 = exp(r10656);
double r10672 = r10671 - r10666;
double r10673 = r10670 / r10672;
double r10674 = r10668 * r10673;
double r10675 = sqrt(r10674);
double r10676 = 0.5;
double r10677 = sqrt(r10659);
double r10678 = r10656 / r10677;
double r10679 = r10676 * r10678;
double r10680 = 2.0;
double r10681 = pow(r10656, r10680);
double r10682 = r10681 / r10677;
double r10683 = 0.25;
double r10684 = 0.125;
double r10685 = r10684 / r10659;
double r10686 = r10683 - r10685;
double r10687 = r10682 * r10686;
double r10688 = r10677 + r10687;
double r10689 = r10679 + r10688;
double r10690 = r10658 ? r10675 : r10689;
return r10690;
}



Bits error versus x
Results
if x < -1.1155861542198394e-16Initial program 0.8
rmApplied *-un-lft-identity0.8
Applied add-sqr-sqrt0.8
Applied add-sqr-sqrt0.7
Applied difference-of-squares0.3
Applied times-frac0.3
Simplified0.3
rmApplied add-log-exp0.3
Applied exp-to-pow0.3
Applied sqrt-pow10.0
Simplified0.0
rmApplied add-log-exp0.0
Applied exp-to-pow0.0
Applied sqrt-pow10.0
Simplified0.0
rmApplied add-sqr-sqrt0.0
Applied unpow-prod-down0.0
if -1.1155861542198394e-16 < x Initial program 36.7
Taylor expanded around 0 8.4
Simplified8.4
Final simplification0.8
herbie shell --seed 2020049
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))