\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -1.04863258415632608821798407282982479316 \cdot 10^{-7} \lor \neg \left(x \le 1.233819893157010264277302635793631679917 \cdot 10^{-6}\right):\\
\;\;\;\;\sqrt{\frac{\sqrt{e^{2 \cdot x}} + \sqrt{1}}{\sqrt{e^{x}} + \sqrt{1}} \cdot \frac{\left(\sqrt{\sqrt{e^{2 \cdot x}}} + \sqrt{\sqrt{1}}\right) \cdot \left(\sqrt{\sqrt{e^{2 \cdot x}}} - \sqrt{\sqrt{1}}\right)}{\sqrt{e^{x}} - \sqrt{1}}}\\
\mathbf{else}:\\
\;\;\;\;0.5 \cdot \frac{x}{\sqrt{2}} + \left(\sqrt{2} + \frac{{x}^{2}}{\sqrt{2}} \cdot \left(0.25 - \frac{0.125}{2}\right)\right)\\
\end{array}double f(double x) {
double r23186 = 2.0;
double r23187 = x;
double r23188 = r23186 * r23187;
double r23189 = exp(r23188);
double r23190 = 1.0;
double r23191 = r23189 - r23190;
double r23192 = exp(r23187);
double r23193 = r23192 - r23190;
double r23194 = r23191 / r23193;
double r23195 = sqrt(r23194);
return r23195;
}
double f(double x) {
double r23196 = x;
double r23197 = -1.0486325841563261e-07;
bool r23198 = r23196 <= r23197;
double r23199 = 1.2338198931570103e-06;
bool r23200 = r23196 <= r23199;
double r23201 = !r23200;
bool r23202 = r23198 || r23201;
double r23203 = 2.0;
double r23204 = r23203 * r23196;
double r23205 = exp(r23204);
double r23206 = sqrt(r23205);
double r23207 = 1.0;
double r23208 = sqrt(r23207);
double r23209 = r23206 + r23208;
double r23210 = exp(r23196);
double r23211 = sqrt(r23210);
double r23212 = r23211 + r23208;
double r23213 = r23209 / r23212;
double r23214 = sqrt(r23206);
double r23215 = sqrt(r23208);
double r23216 = r23214 + r23215;
double r23217 = r23214 - r23215;
double r23218 = r23216 * r23217;
double r23219 = r23211 - r23208;
double r23220 = r23218 / r23219;
double r23221 = r23213 * r23220;
double r23222 = sqrt(r23221);
double r23223 = 0.5;
double r23224 = sqrt(r23203);
double r23225 = r23196 / r23224;
double r23226 = r23223 * r23225;
double r23227 = 2.0;
double r23228 = pow(r23196, r23227);
double r23229 = r23228 / r23224;
double r23230 = 0.25;
double r23231 = 0.125;
double r23232 = r23231 / r23203;
double r23233 = r23230 - r23232;
double r23234 = r23229 * r23233;
double r23235 = r23224 + r23234;
double r23236 = r23226 + r23235;
double r23237 = r23202 ? r23222 : r23236;
return r23237;
}



Bits error versus x
Results
if x < -1.0486325841563261e-07 or 1.2338198931570103e-06 < x Initial program 0.4
rmApplied add-sqr-sqrt0.4
Applied add-sqr-sqrt0.5
Applied difference-of-squares0.5
Applied add-sqr-sqrt0.5
Applied add-sqr-sqrt0.5
Applied difference-of-squares0.5
Applied times-frac0.5
rmApplied add-sqr-sqrt0.5
Applied sqrt-prod0.5
Applied add-sqr-sqrt0.5
Applied sqrt-prod0.4
Applied difference-of-squares0.1
if -1.0486325841563261e-07 < x < 1.2338198931570103e-06Initial program 42.4
Taylor expanded around 0 0.2
Simplified0.2
Final simplification0.1
herbie shell --seed 2019344
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))