\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \leq -1.4142710662085361 \cdot 10^{-05}:\\
\;\;\;\;\sqrt{\frac{{\left(e^{x}\right)}^{2} - 1}{\frac{{\left(e^{x}\right)}^{2} - 1 \cdot 1}{e^{x} + 1}}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{x + \left(2 + x \cdot \left(x \cdot 0.5\right)\right)}\\
\end{array}(FPCore (x) :precision binary64 (sqrt (/ (- (exp (* 2.0 x)) 1.0) (- (exp x) 1.0))))
(FPCore (x)
:precision binary64
(if (<= x -1.4142710662085361e-05)
(sqrt
(/
(- (pow (exp x) 2.0) 1.0)
(/ (- (pow (exp x) 2.0) (* 1.0 1.0)) (+ (exp x) 1.0))))
(sqrt (+ x (+ 2.0 (* x (* x 0.5)))))))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 tmp;
if ((x <= -1.4142710662085361e-05)) {
tmp = ((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 {
tmp = ((double) sqrt(((double) (x + ((double) (2.0 + ((double) (x * ((double) (x * 0.5))))))))));
}
return tmp;
}



Bits error versus x
Results
if x < -1.41427106620853615e-5Initial program Error: 0.1 bits
SimplifiedError: 0.1 bits
rmApplied flip--Error: 0.0 bits
SimplifiedError: 0.0 bits
if -1.41427106620853615e-5 < x Initial program Error: 62.0 bits
SimplifiedError: 61.6 bits
Taylor expanded around 0 Error: 0.4 bits
SimplifiedError: 0.4 bits
Final simplificationError: 0.3 bits
herbie shell --seed 2020204
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2.0 x)) 1.0) (- (exp x) 1.0))))