\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 -2404699594045954599540100621504872448:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{2 \cdot \left(\frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}} - \frac{t}{\sqrt{2} \cdot x}\right) - t \cdot \sqrt{2}}\\
\mathbf{elif}\;t \le -6.492099203484521869436081722227008598355 \cdot 10^{-157}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left(t \cdot t + \frac{\ell}{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \frac{\ell}{\sqrt[3]{x}}\right)}}\\
\mathbf{elif}\;t \le -7.231141217156239276359457821248495233406 \cdot 10^{-225}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{2 \cdot \left(\frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}} - \frac{t}{\sqrt{2} \cdot x}\right) - t \cdot \sqrt{2}}\\
\mathbf{elif}\;t \le 1.53909661729405029639481098041358476011 \cdot 10^{-299} \lor \neg \left(t \le 1.464783658109499293496367809888962941264 \cdot 10^{-233} \lor \neg \left(t \le 7.020103372014630694165473293132646183048 \cdot 10^{147}\right)\right):\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left(t \cdot t + \left|\ell\right| \cdot \frac{\left|\ell\right|}{x}\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \frac{t}{\sqrt{2} \cdot x} + t \cdot \sqrt{2}\right) - \frac{t}{{x}^{2}} \cdot \left(\frac{2}{\sqrt{2} \cdot 2} - \frac{2}{\sqrt{2}}\right)}\\
\end{array}double f(double x, double l, double t) {
double r36924 = 2.0;
double r36925 = sqrt(r36924);
double r36926 = t;
double r36927 = r36925 * r36926;
double r36928 = x;
double r36929 = 1.0;
double r36930 = r36928 + r36929;
double r36931 = r36928 - r36929;
double r36932 = r36930 / r36931;
double r36933 = l;
double r36934 = r36933 * r36933;
double r36935 = r36926 * r36926;
double r36936 = r36924 * r36935;
double r36937 = r36934 + r36936;
double r36938 = r36932 * r36937;
double r36939 = r36938 - r36934;
double r36940 = sqrt(r36939);
double r36941 = r36927 / r36940;
return r36941;
}
double f(double x, double l, double t) {
double r36942 = t;
double r36943 = -2.4046995940459546e+36;
bool r36944 = r36942 <= r36943;
double r36945 = 2.0;
double r36946 = sqrt(r36945);
double r36947 = r36946 * r36942;
double r36948 = 3.0;
double r36949 = pow(r36946, r36948);
double r36950 = x;
double r36951 = 2.0;
double r36952 = pow(r36950, r36951);
double r36953 = r36949 * r36952;
double r36954 = r36942 / r36953;
double r36955 = r36946 * r36950;
double r36956 = r36942 / r36955;
double r36957 = r36954 - r36956;
double r36958 = r36945 * r36957;
double r36959 = r36942 * r36946;
double r36960 = r36958 - r36959;
double r36961 = r36947 / r36960;
double r36962 = -6.492099203484522e-157;
bool r36963 = r36942 <= r36962;
double r36964 = 4.0;
double r36965 = pow(r36942, r36951);
double r36966 = r36965 / r36950;
double r36967 = r36964 * r36966;
double r36968 = r36942 * r36942;
double r36969 = l;
double r36970 = cbrt(r36950);
double r36971 = r36970 * r36970;
double r36972 = r36969 / r36971;
double r36973 = r36969 / r36970;
double r36974 = r36972 * r36973;
double r36975 = r36968 + r36974;
double r36976 = r36945 * r36975;
double r36977 = r36967 + r36976;
double r36978 = sqrt(r36977);
double r36979 = r36947 / r36978;
double r36980 = -7.231141217156239e-225;
bool r36981 = r36942 <= r36980;
double r36982 = 1.5390966172940503e-299;
bool r36983 = r36942 <= r36982;
double r36984 = 1.4647836581094993e-233;
bool r36985 = r36942 <= r36984;
double r36986 = 7.02010337201463e+147;
bool r36987 = r36942 <= r36986;
double r36988 = !r36987;
bool r36989 = r36985 || r36988;
double r36990 = !r36989;
bool r36991 = r36983 || r36990;
double r36992 = fabs(r36969);
double r36993 = r36992 / r36950;
double r36994 = r36992 * r36993;
double r36995 = r36968 + r36994;
double r36996 = r36945 * r36995;
double r36997 = r36967 + r36996;
double r36998 = sqrt(r36997);
double r36999 = r36947 / r36998;
double r37000 = r36945 * r36956;
double r37001 = r37000 + r36959;
double r37002 = r36942 / r36952;
double r37003 = r36946 * r36945;
double r37004 = r36945 / r37003;
double r37005 = r36945 / r36946;
double r37006 = r37004 - r37005;
double r37007 = r37002 * r37006;
double r37008 = r37001 - r37007;
double r37009 = r36947 / r37008;
double r37010 = r36991 ? r36999 : r37009;
double r37011 = r36981 ? r36961 : r37010;
double r37012 = r36963 ? r36979 : r37011;
double r37013 = r36944 ? r36961 : r37012;
return r37013;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -2.4046995940459546e+36 or -6.492099203484522e-157 < t < -7.231141217156239e-225Initial program 46.4
Taylor expanded around inf 40.8
Simplified40.8
Taylor expanded around -inf 9.0
Simplified9.0
if -2.4046995940459546e+36 < t < -6.492099203484522e-157Initial program 29.4
Taylor expanded around inf 9.5
Simplified9.5
rmApplied add-cube-cbrt9.5
Applied add-sqr-sqrt37.2
Applied unpow-prod-down37.2
Applied times-frac34.9
Simplified34.9
Simplified5.0
if -7.231141217156239e-225 < t < 1.5390966172940503e-299 or 1.4647836581094993e-233 < t < 7.02010337201463e+147Initial program 35.8
Taylor expanded around inf 17.6
Simplified17.6
rmApplied *-un-lft-identity17.6
Applied add-sqr-sqrt17.6
Applied times-frac17.6
Simplified17.6
Simplified13.4
if 1.5390966172940503e-299 < t < 1.4647836581094993e-233 or 7.02010337201463e+147 < t Initial program 60.9
Taylor expanded around inf 10.3
Simplified10.3
Final simplification10.2
herbie shell --seed 2019350
(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)))))