\sqrt{\frac{e^{2 \cdot x} - 1}{e^{x} - 1}}\begin{array}{l}
\mathbf{if}\;x \le -6.780812387076979337394696627937232713719 \cdot 10^{-12}:\\
\;\;\;\;\sqrt{\frac{e^{2 \cdot x} - 1}{\frac{\mathsf{fma}\left(-1, 1, e^{x + x}\right)}{e^{x} + 1}}}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(0.5, \frac{x}{\sqrt{2}}, \sqrt{2}\right) + \mathsf{expm1}\left(\mathsf{log1p}\left(\left(0.25 - \frac{0.125}{2}\right) \cdot \frac{x \cdot x}{\sqrt{2}}\right)\right)\\
\end{array}double f(double x) {
double r28907 = 2.0;
double r28908 = x;
double r28909 = r28907 * r28908;
double r28910 = exp(r28909);
double r28911 = 1.0;
double r28912 = r28910 - r28911;
double r28913 = exp(r28908);
double r28914 = r28913 - r28911;
double r28915 = r28912 / r28914;
double r28916 = sqrt(r28915);
return r28916;
}
double f(double x) {
double r28917 = x;
double r28918 = -6.780812387076979e-12;
bool r28919 = r28917 <= r28918;
double r28920 = 2.0;
double r28921 = r28920 * r28917;
double r28922 = exp(r28921);
double r28923 = 1.0;
double r28924 = r28922 - r28923;
double r28925 = -r28923;
double r28926 = r28917 + r28917;
double r28927 = exp(r28926);
double r28928 = fma(r28925, r28923, r28927);
double r28929 = exp(r28917);
double r28930 = r28929 + r28923;
double r28931 = r28928 / r28930;
double r28932 = r28924 / r28931;
double r28933 = sqrt(r28932);
double r28934 = 0.5;
double r28935 = sqrt(r28920);
double r28936 = r28917 / r28935;
double r28937 = fma(r28934, r28936, r28935);
double r28938 = 0.25;
double r28939 = 0.125;
double r28940 = r28939 / r28920;
double r28941 = r28938 - r28940;
double r28942 = r28917 * r28917;
double r28943 = r28942 / r28935;
double r28944 = r28941 * r28943;
double r28945 = log1p(r28944);
double r28946 = expm1(r28945);
double r28947 = r28937 + r28946;
double r28948 = r28919 ? r28933 : r28947;
return r28948;
}



Bits error versus x
if x < -6.780812387076979e-12Initial program 0.5
rmApplied flip--0.3
Simplified0.0
if -6.780812387076979e-12 < x Initial program 36.3
Taylor expanded around 0 6.8
Simplified6.8
rmApplied expm1-log1p-u6.8
Simplified6.8
Final simplification0.8
herbie shell --seed 2019174 +o rules:numerics
(FPCore (x)
:name "sqrtexp (problem 3.4.4)"
(sqrt (/ (- (exp (* 2.0 x)) 1.0) (- (exp x) 1.0))))