\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}{\left(2 \cdot \left(\frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}} - \frac{t}{\sqrt{2} \cdot {x}^{2}}\right) - \sqrt{2} \cdot t\right) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}}\\
\mathbf{elif}\;t \le 3.380741590772817149641192548059648402147 \cdot 10^{117}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \frac{\ell}{\frac{x}{\ell}}\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2} \cdot t + \left(2 \cdot \frac{t}{\sqrt{2} \cdot x} + \frac{2}{{x}^{2}} \cdot \left(\frac{t}{\sqrt{2}} - \frac{t}{{\left(\sqrt{2}\right)}^{3}}\right)\right)}\\
\end{array}double f(double x, double l, double t) {
double r43930 = 2.0;
double r43931 = sqrt(r43930);
double r43932 = t;
double r43933 = r43931 * r43932;
double r43934 = x;
double r43935 = 1.0;
double r43936 = r43934 + r43935;
double r43937 = r43934 - r43935;
double r43938 = r43936 / r43937;
double r43939 = l;
double r43940 = r43939 * r43939;
double r43941 = r43932 * r43932;
double r43942 = r43930 * r43941;
double r43943 = r43940 + r43942;
double r43944 = r43938 * r43943;
double r43945 = r43944 - r43940;
double r43946 = sqrt(r43945);
double r43947 = r43933 / r43946;
return r43947;
}
double f(double x, double l, double t) {
double r43948 = t;
double r43949 = -3.696744411039917e+122;
bool r43950 = r43948 <= r43949;
double r43951 = 2.0;
double r43952 = sqrt(r43951);
double r43953 = r43952 * r43948;
double r43954 = 3.0;
double r43955 = pow(r43952, r43954);
double r43956 = x;
double r43957 = 2.0;
double r43958 = pow(r43956, r43957);
double r43959 = r43955 * r43958;
double r43960 = r43948 / r43959;
double r43961 = r43952 * r43958;
double r43962 = r43948 / r43961;
double r43963 = r43960 - r43962;
double r43964 = r43951 * r43963;
double r43965 = r43964 - r43953;
double r43966 = r43952 * r43956;
double r43967 = r43948 / r43966;
double r43968 = r43951 * r43967;
double r43969 = r43965 - r43968;
double r43970 = r43953 / r43969;
double r43971 = 3.380741590772817e+117;
bool r43972 = r43948 <= r43971;
double r43973 = 4.0;
double r43974 = pow(r43948, r43957);
double r43975 = r43974 / r43956;
double r43976 = r43973 * r43975;
double r43977 = l;
double r43978 = r43956 / r43977;
double r43979 = r43977 / r43978;
double r43980 = r43974 + r43979;
double r43981 = r43951 * r43980;
double r43982 = r43976 + r43981;
double r43983 = sqrt(r43982);
double r43984 = r43953 / r43983;
double r43985 = r43951 / r43958;
double r43986 = r43948 / r43952;
double r43987 = r43948 / r43955;
double r43988 = r43986 - r43987;
double r43989 = r43985 * r43988;
double r43990 = r43968 + r43989;
double r43991 = r43953 + r43990;
double r43992 = r43953 / r43991;
double r43993 = r43972 ? r43984 : r43992;
double r43994 = r43950 ? r43970 : r43993;
return r43994;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -3.696744411039917e+122Initial program 54.6
Taylor expanded around -inf 2.8
Simplified2.8
if -3.696744411039917e+122 < t < 3.380741590772817e+117Initial program 36.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
Taylor expanded around inf 2.1
Simplified2.1
Final simplification9.0
herbie shell --seed 2019304
(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)))))