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 <= -3.597097828746943e-08)) {
VAR = ((double) sqrt(((double) (((double) (((double) pow(((double) exp(x)), 2.0)) - 1.0)) / ((double) (((double) (((double) pow(((double) exp(x)), 2.0)) - ((double) (1.0 * 1.0)))) / ((double) (((double) exp(x)) + 1.0))))))));
} else {
VAR = ((double) sqrt(((double) (x + ((double) (2.0 + ((double) (x * ((double) (x * 0.5))))))))));
}
return VAR;
}



Bits error versus x
Results
if x < -3.5970978287469428e-8Initial program 0.2
Simplified0.2
rmApplied flip--0.0
Simplified0.0
if -3.5970978287469428e-8 < x Initial program 62.0
Simplified61.6
Taylor expanded around 0 0.5
Simplified0.5
Final simplification0.3
herbie shell --seed 2020192
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2.0 x)) 1.0) (- (exp x) 1.0))))