\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -0.0012905509290539541:\\
\;\;\;\;\sqrt{e^{\log \left(\frac{e^{2 \cdot x} - 1}{e^{x} - 1}\right)}}\\
\mathbf{elif}\;x \le 5.8401109832474551 \cdot 10^{-7}:\\
\;\;\;\;\sqrt{e^{0.25 \cdot {x}^{2} + \left(\log 2 + 0.5 \cdot \left(x - \frac{{x}^{2}}{{2}^{2}}\right)\right)}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\frac{\left(\sqrt{e^{2 \cdot x}} + \sqrt{1}\right) \cdot \left(\sqrt{e^{2 \cdot x}} - \sqrt{1}\right)}{e^{x} - 1}}\\
\end{array}double code(double x) {
return ((double) sqrt(((double) (((double) (((double) exp(((double) (2.0 * x)))) - 1.0)) / ((double) (((double) exp(x)) - 1.0))))));
}
double code(double x) {
double VAR;
if ((x <= -0.0012905509290539541)) {
VAR = ((double) sqrt(((double) exp(((double) log(((double) (((double) (((double) exp(((double) (2.0 * x)))) - 1.0)) / ((double) (((double) exp(x)) - 1.0))))))))));
} else {
double VAR_1;
if ((x <= 5.840110983247455e-07)) {
VAR_1 = ((double) sqrt(((double) exp(((double) (((double) (0.25 * ((double) pow(x, 2.0)))) + ((double) (((double) log(2.0)) + ((double) (0.5 * ((double) (x - ((double) (((double) pow(x, 2.0)) / ((double) pow(2.0, 2.0))))))))))))))));
} else {
VAR_1 = ((double) sqrt(((double) (((double) (((double) (((double) sqrt(((double) exp(((double) (2.0 * x)))))) + ((double) sqrt(1.0)))) * ((double) (((double) sqrt(((double) exp(((double) (2.0 * x)))))) - ((double) sqrt(1.0)))))) / ((double) (((double) exp(x)) - 1.0))))));
}
VAR = VAR_1;
}
return VAR;
}



Bits error versus x
Results
if x < -0.0012905509290539541Initial program 0.0
rmApplied add-exp-log64.0
Applied add-exp-log64.0
Applied div-exp64.0
Simplified0.0
if -0.0012905509290539541 < x < 5.840110983247455e-07Initial program 38.1
rmApplied add-exp-log52.4
Applied add-exp-log52.4
Applied div-exp52.4
Simplified38.1
Taylor expanded around 0 0.2
Simplified0.2
if 5.840110983247455e-07 < x Initial program 9.6
rmApplied add-sqr-sqrt9.6
Applied add-sqr-sqrt9.3
Applied difference-of-squares5.4
Final simplification0.2
herbie shell --seed 2020122
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))