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 <= -7.284067260085109e-16)) {
VAR = ((double) sqrt(((double) (((double) (((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) (x * ((double) (0.5 / ((double) sqrt(2.0)))))) + ((double) (((double) (((double) cbrt(((double) (x * ((double) (x / ((double) sqrt(2.0)))))))) * ((double) (((double) cbrt(((double) (x * ((double) (x / ((double) sqrt(2.0)))))))) * ((double) cbrt(((double) (x * ((double) (x / ((double) sqrt(2.0)))))))))))) * 0.1875))))));
}
return VAR;
}



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