\frac{\sqrt{2} \cdot t}{\sqrt{\frac{x + 1}{x - 1} \cdot \left(\ell \cdot \ell + 2 \cdot \left(t \cdot t\right)\right) - \ell \cdot \ell}}\begin{array}{l}
\mathbf{if}\;t \le -3.696744411039916917517605602907382612022 \cdot 10^{122}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{-\mathsf{fma}\left(t, \sqrt{2}, 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right)}\\
\mathbf{elif}\;t \le 3.380741590772817149641192548059648402147 \cdot 10^{117}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\mathsf{fma}\left(2, \mathsf{fma}\left(t, t, \frac{\ell}{\frac{x}{\ell}}\right), 4 \cdot \frac{{t}^{2}}{x}\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\mathsf{fma}\left(t, \sqrt{2}, 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right)}\\
\end{array}double f(double x, double l, double t) {
double r38037 = 2.0;
double r38038 = sqrt(r38037);
double r38039 = t;
double r38040 = r38038 * r38039;
double r38041 = x;
double r38042 = 1.0;
double r38043 = r38041 + r38042;
double r38044 = r38041 - r38042;
double r38045 = r38043 / r38044;
double r38046 = l;
double r38047 = r38046 * r38046;
double r38048 = r38039 * r38039;
double r38049 = r38037 * r38048;
double r38050 = r38047 + r38049;
double r38051 = r38045 * r38050;
double r38052 = r38051 - r38047;
double r38053 = sqrt(r38052);
double r38054 = r38040 / r38053;
return r38054;
}
double f(double x, double l, double t) {
double r38055 = t;
double r38056 = -3.696744411039917e+122;
bool r38057 = r38055 <= r38056;
double r38058 = 2.0;
double r38059 = sqrt(r38058);
double r38060 = r38059 * r38055;
double r38061 = x;
double r38062 = r38059 * r38061;
double r38063 = r38055 / r38062;
double r38064 = r38058 * r38063;
double r38065 = fma(r38055, r38059, r38064);
double r38066 = -r38065;
double r38067 = r38060 / r38066;
double r38068 = 3.380741590772817e+117;
bool r38069 = r38055 <= r38068;
double r38070 = l;
double r38071 = r38061 / r38070;
double r38072 = r38070 / r38071;
double r38073 = fma(r38055, r38055, r38072);
double r38074 = 4.0;
double r38075 = 2.0;
double r38076 = pow(r38055, r38075);
double r38077 = r38076 / r38061;
double r38078 = r38074 * r38077;
double r38079 = fma(r38058, r38073, r38078);
double r38080 = sqrt(r38079);
double r38081 = r38060 / r38080;
double r38082 = r38060 / r38065;
double r38083 = r38069 ? r38081 : r38082;
double r38084 = r38057 ? r38067 : r38083;
return r38084;
}



Bits error versus x



Bits error versus l



Bits error versus t
if t < -3.696744411039917e+122Initial program 54.6
Simplified54.6
Taylor expanded around inf 54.9
Simplified54.9
Taylor expanded around -inf 2.9
Simplified2.9
if -3.696744411039917e+122 < t < 3.380741590772817e+117Initial program 36.6
Simplified36.6
Taylor expanded around inf 17.2
Simplified17.2
rmApplied unpow217.2
Applied associate-/l*12.8
if 3.380741590772817e+117 < t Initial program 53.6
Simplified53.6
Taylor expanded around inf 54.0
Simplified54.0
Taylor expanded around inf 2.4
Simplified2.4
Final simplification9.1
herbie shell --seed 2019304 +o rules:numerics
(FPCore (x l t)
:name "Toniolo and Linder, Equation (7)"
:precision binary64
(/ (* (sqrt 2) t) (sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l)))))