\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;\frac{e^{2 \cdot x} - 1}{e^{x} - 1} \le 3288981.7384411361999809741973876953125:\\
\;\;\;\;\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x + x} - 1 \cdot 1} \cdot \left(e^{x} + 1\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2 + x \cdot \left(0.5 \cdot x + 1\right)}\\
\end{array}double f(double x) {
double r20130 = 2.0;
double r20131 = x;
double r20132 = r20130 * r20131;
double r20133 = exp(r20132);
double r20134 = 1.0;
double r20135 = r20133 - r20134;
double r20136 = exp(r20131);
double r20137 = r20136 - r20134;
double r20138 = r20135 / r20137;
double r20139 = sqrt(r20138);
return r20139;
}
double f(double x) {
double r20140 = 2.0;
double r20141 = x;
double r20142 = r20140 * r20141;
double r20143 = exp(r20142);
double r20144 = 1.0;
double r20145 = r20143 - r20144;
double r20146 = exp(r20141);
double r20147 = r20146 - r20144;
double r20148 = r20145 / r20147;
double r20149 = 3288981.738441136;
bool r20150 = r20148 <= r20149;
double r20151 = r20141 + r20141;
double r20152 = exp(r20151);
double r20153 = r20144 * r20144;
double r20154 = r20152 - r20153;
double r20155 = r20145 / r20154;
double r20156 = r20146 + r20144;
double r20157 = r20155 * r20156;
double r20158 = sqrt(r20157);
double r20159 = 0.5;
double r20160 = r20159 * r20141;
double r20161 = r20160 + r20144;
double r20162 = r20141 * r20161;
double r20163 = r20140 + r20162;
double r20164 = sqrt(r20163);
double r20165 = r20150 ? r20158 : r20164;
return r20165;
}



Bits error versus x
Results
if (/ (- (exp (* 2.0 x)) 1.0) (- (exp x) 1.0)) < 3288981.738441136Initial program 1.8
rmApplied flip--1.3
Applied associate-/r/1.3
Simplified0.0
if 3288981.738441136 < (/ (- (exp (* 2.0 x)) 1.0) (- (exp x) 1.0)) Initial program 59.6
Taylor expanded around 0 5.3
Simplified5.3
Final simplification0.3
herbie shell --seed 2019209
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))