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.3062666099573845e-06)) {
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) (((double) sqrt(2.0)) + ((double) (((double) (((double) (x * ((double) (x / ((double) sqrt(2.0)))))) * 0.1875)) + ((double) (((double) (x / ((double) sqrt(2.0)))) * 0.5))))));
}
return VAR;
}



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