\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \leq -1.6478513007102085 \cdot 10^{-16}:\\
\;\;\;\;\sqrt{\frac{{\left(e^{x}\right)}^{2} - 1}{\frac{{\left(e^{x}\right)}^{2} - 1 \cdot 1}{e^{x} + 1}}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2} + \left(\left(x \cdot \frac{x}{\sqrt{2}}\right) \cdot 0.1875 + \frac{x}{\sqrt{2}} \cdot 0.5\right)\\
\end{array}double code(double x) {
return ((double) sqrt((((double) (((double) exp(((double) (2.0 * x)))) - 1.0)) / ((double) (((double) exp(x)) - 1.0)))));
}
double code(double x) {
double VAR;
if ((x <= -1.6478513007102085e-16)) {
VAR = ((double) sqrt((((double) (((double) pow(((double) exp(x)), 2.0)) - 1.0)) / (((double) (((double) pow(((double) exp(x)), 2.0)) - ((double) (1.0 * 1.0)))) / ((double) (((double) exp(x)) + 1.0))))));
} else {
VAR = ((double) (((double) sqrt(2.0)) + ((double) (((double) (((double) (x * (x / ((double) sqrt(2.0))))) * 0.1875)) + ((double) ((x / ((double) sqrt(2.0))) * 0.5))))));
}
return VAR;
}



Bits error versus x
Results
if x < -1.6478513007102085e-16Initial program 0.7
Simplified0.5
rmApplied flip--0.0
Simplified0.0
if -1.6478513007102085e-16 < x Initial program 62.5
Simplified62.3
Taylor expanded around 0 0.5
Simplified0.5
Final simplification0.3
herbie shell --seed 2020199
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2.0 x)) 1.0) (- (exp x) 1.0))))