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



Bits error versus x
Results
if x < -1.30071265225513612e-4Initial program 0.0
rmApplied add-cbrt-cube_binary640.0
Simplified0.0
if -1.30071265225513612e-4 < x Initial program 61.7
Taylor expanded around 0 0.4
Simplified0.4
Final simplification0.3
herbie shell --seed 2020210
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2.0 x)) 1.0) (- (exp x) 1.0))))