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 <= -2.0317678813632748e-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) (((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 < -2.03176788136327477e-8Initial program 0.2
Simplified0.2
rmApplied flip--0.0
Simplified0.0
if -2.03176788136327477e-8 < x Initial program 61.9
Simplified61.4
Taylor expanded around 0 0.4
Simplified0.4
Final simplification0.3
herbie shell --seed 2020181
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2.0 x)) 1.0) (- (exp x) 1.0))))