\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -3.26467025645999135252499356862898594045 \cdot 10^{-6} \lor \neg \left(x \le 5.717344166834740593150648857445617068151 \cdot 10^{-6}\right):\\
\;\;\;\;\sqrt{\frac{\sqrt{\sqrt{e^{2 \cdot x}}} \cdot \sqrt{\sqrt{e^{2 \cdot x}}} + \sqrt{1}}{1}} \cdot \sqrt{\frac{\sqrt{e^{2 \cdot x}} - \sqrt{1}}{e^{x} - 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 r11460 = 2.0;
double r11461 = x;
double r11462 = r11460 * r11461;
double r11463 = exp(r11462);
double r11464 = 1.0;
double r11465 = r11463 - r11464;
double r11466 = exp(r11461);
double r11467 = r11466 - r11464;
double r11468 = r11465 / r11467;
double r11469 = sqrt(r11468);
return r11469;
}
double f(double x) {
double r11470 = x;
double r11471 = -3.2646702564599914e-06;
bool r11472 = r11470 <= r11471;
double r11473 = 5.717344166834741e-06;
bool r11474 = r11470 <= r11473;
double r11475 = !r11474;
bool r11476 = r11472 || r11475;
double r11477 = 2.0;
double r11478 = r11477 * r11470;
double r11479 = exp(r11478);
double r11480 = sqrt(r11479);
double r11481 = sqrt(r11480);
double r11482 = r11481 * r11481;
double r11483 = 1.0;
double r11484 = sqrt(r11483);
double r11485 = r11482 + r11484;
double r11486 = 1.0;
double r11487 = r11485 / r11486;
double r11488 = sqrt(r11487);
double r11489 = r11480 - r11484;
double r11490 = exp(r11470);
double r11491 = r11490 - r11483;
double r11492 = r11489 / r11491;
double r11493 = sqrt(r11492);
double r11494 = r11488 * r11493;
double r11495 = 0.5;
double r11496 = sqrt(r11477);
double r11497 = r11470 / r11496;
double r11498 = r11495 * r11497;
double r11499 = 2.0;
double r11500 = pow(r11470, r11499);
double r11501 = r11500 / r11496;
double r11502 = 0.25;
double r11503 = 0.125;
double r11504 = r11503 / r11477;
double r11505 = r11502 - r11504;
double r11506 = r11501 * r11505;
double r11507 = r11496 + r11506;
double r11508 = r11498 + r11507;
double r11509 = r11476 ? r11494 : r11508;
return r11509;
}



Bits error versus x
Results
if x < -3.2646702564599914e-06 or 5.717344166834741e-06 < x Initial program 0.4
rmApplied *-un-lft-identity0.4
Applied add-sqr-sqrt0.4
Applied add-sqr-sqrt0.3
Applied difference-of-squares0.2
Applied times-frac0.2
Applied sqrt-prod0.2
rmApplied add-sqr-sqrt0.2
Applied sqrt-prod0.2
if -3.2646702564599914e-06 < x < 5.717344166834741e-06Initial program 39.2
Taylor expanded around 0 0.3
Simplified0.3
Final simplification0.2
herbie shell --seed 2019362
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
:precision binary64
(sqrt (/ (- (exp (* 2 x)) 1) (- (exp x) 1))))