double f(double x) {
double r836271 = 2.0;
double r836272 = x;
double r836273 = r836271 * r836272;
double r836274 = exp(r836273);
double r836275 = 1.0;
double r836276 = r836274 - r836275;
double r836277 = exp(r836272);
double r836278 = r836277 - r836275;
double r836279 = r836276 / r836278;
double r836280 = sqrt(r836279);
return r836280;
}
double f(double x) {
double r836281 = x;
double r836282 = exp(r836281);
double r836283 = 1.0;
double r836284 = r836282 + r836283;
double r836285 = log1p(r836284);
double r836286 = expm1(r836285);
double r836287 = sqrt(r836286);
return r836287;
}
\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\sqrt{(e^{\log_* (1 + \left(e^{x} + 1\right))} - 1)^*}


Bits error versus x
Initial program 4.4
Simplified0.1
rmApplied expm1-log1p-u0.1
Final simplification0.1
herbie shell --seed 2019102 +o rules:numerics
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))