\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.3972712623864903 \cdot 10^{+34}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\frac{t}{x \cdot x} \cdot \frac{1}{\sqrt{2}} - \left(\frac{2}{\sqrt{2}} \cdot \left(\frac{t}{x} + \frac{t}{x \cdot x}\right) + \sqrt{2} \cdot t\right)}\\
\mathbf{elif}\;t \le -5.1631397836325573 \cdot 10^{-172}:\\
\;\;\;\;\frac{\left(\sqrt[3]{\sqrt{2}} \cdot t\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right)}{\sqrt{\left(\ell \cdot 2\right) \cdot \frac{\ell}{x} + \left(\frac{4}{x} + 2\right) \cdot \left(t \cdot t\right)}}\\
\mathbf{elif}\;t \le -8.117479547197517 \cdot 10^{-196}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\frac{t}{x \cdot x} \cdot \frac{1}{\sqrt{2}} - \left(\frac{2}{\sqrt{2}} \cdot \left(\frac{t}{x} + \frac{t}{x \cdot x}\right) + \sqrt{2} \cdot t\right)}\\
\mathbf{elif}\;t \le 8.566610103260225 \cdot 10^{-208}:\\
\;\;\;\;\frac{\left(\sqrt[3]{\sqrt{2}} \cdot t\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right)}{\frac{\sqrt{\left(\left(4 - \left(2 - \frac{4}{x}\right) \cdot \frac{4}{x}\right) \cdot \left(\ell \cdot \ell\right)\right) \cdot 2 + \left(x \cdot \left(t \cdot t\right)\right) \cdot \left(\frac{\frac{64}{x \cdot x}}{x} + 8\right)}}{\sqrt{x \cdot \left(\left(4 - 2 \cdot \frac{4}{x}\right) + \frac{4}{x} \cdot \frac{4}{x}\right)}}}\\
\mathbf{elif}\;t \le 1.6397433314236832 \cdot 10^{-160}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\sqrt{2} \cdot t - \frac{t}{x \cdot x} \cdot \frac{1}{\sqrt{2}}\right) + \left(\frac{\frac{2}{x}}{x} + \frac{2}{x}\right) \cdot \frac{t}{\sqrt{2}}}\\
\mathbf{elif}\;t \le 1.4454171454576948 \cdot 10^{+136}:\\
\;\;\;\;\frac{\left(\sqrt[3]{\sqrt{2}} \cdot t\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right)}{\sqrt{\left(\ell \cdot 2\right) \cdot \frac{\ell}{x} + \left(\frac{4}{x} + 2\right) \cdot \left(t \cdot t\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\sqrt{2} \cdot t - \frac{t}{x \cdot x} \cdot \frac{1}{\sqrt{2}}\right) + \left(\frac{\frac{2}{x}}{x} + \frac{2}{x}\right) \cdot \frac{t}{\sqrt{2}}}\\
\end{array}double f(double x, double l, double t) {
double r2410856 = 2.0;
double r2410857 = sqrt(r2410856);
double r2410858 = t;
double r2410859 = r2410857 * r2410858;
double r2410860 = x;
double r2410861 = 1.0;
double r2410862 = r2410860 + r2410861;
double r2410863 = r2410860 - r2410861;
double r2410864 = r2410862 / r2410863;
double r2410865 = l;
double r2410866 = r2410865 * r2410865;
double r2410867 = r2410858 * r2410858;
double r2410868 = r2410856 * r2410867;
double r2410869 = r2410866 + r2410868;
double r2410870 = r2410864 * r2410869;
double r2410871 = r2410870 - r2410866;
double r2410872 = sqrt(r2410871);
double r2410873 = r2410859 / r2410872;
return r2410873;
}
double f(double x, double l, double t) {
double r2410874 = t;
double r2410875 = -3.3972712623864903e+34;
bool r2410876 = r2410874 <= r2410875;
double r2410877 = 2.0;
double r2410878 = sqrt(r2410877);
double r2410879 = r2410878 * r2410874;
double r2410880 = x;
double r2410881 = r2410880 * r2410880;
double r2410882 = r2410874 / r2410881;
double r2410883 = 1.0;
double r2410884 = r2410883 / r2410878;
double r2410885 = r2410882 * r2410884;
double r2410886 = r2410877 / r2410878;
double r2410887 = r2410874 / r2410880;
double r2410888 = r2410887 + r2410882;
double r2410889 = r2410886 * r2410888;
double r2410890 = r2410889 + r2410879;
double r2410891 = r2410885 - r2410890;
double r2410892 = r2410879 / r2410891;
double r2410893 = -5.1631397836325573e-172;
bool r2410894 = r2410874 <= r2410893;
double r2410895 = cbrt(r2410878);
double r2410896 = r2410895 * r2410874;
double r2410897 = r2410895 * r2410895;
double r2410898 = r2410896 * r2410897;
double r2410899 = l;
double r2410900 = r2410899 * r2410877;
double r2410901 = r2410899 / r2410880;
double r2410902 = r2410900 * r2410901;
double r2410903 = 4.0;
double r2410904 = r2410903 / r2410880;
double r2410905 = r2410904 + r2410877;
double r2410906 = r2410874 * r2410874;
double r2410907 = r2410905 * r2410906;
double r2410908 = r2410902 + r2410907;
double r2410909 = sqrt(r2410908);
double r2410910 = r2410898 / r2410909;
double r2410911 = -8.117479547197517e-196;
bool r2410912 = r2410874 <= r2410911;
double r2410913 = 8.566610103260225e-208;
bool r2410914 = r2410874 <= r2410913;
double r2410915 = r2410877 - r2410904;
double r2410916 = r2410915 * r2410904;
double r2410917 = r2410903 - r2410916;
double r2410918 = r2410899 * r2410899;
double r2410919 = r2410917 * r2410918;
double r2410920 = r2410919 * r2410877;
double r2410921 = r2410880 * r2410906;
double r2410922 = 64.0;
double r2410923 = r2410922 / r2410881;
double r2410924 = r2410923 / r2410880;
double r2410925 = 8.0;
double r2410926 = r2410924 + r2410925;
double r2410927 = r2410921 * r2410926;
double r2410928 = r2410920 + r2410927;
double r2410929 = sqrt(r2410928);
double r2410930 = r2410877 * r2410904;
double r2410931 = r2410903 - r2410930;
double r2410932 = r2410904 * r2410904;
double r2410933 = r2410931 + r2410932;
double r2410934 = r2410880 * r2410933;
double r2410935 = sqrt(r2410934);
double r2410936 = r2410929 / r2410935;
double r2410937 = r2410898 / r2410936;
double r2410938 = 1.6397433314236832e-160;
bool r2410939 = r2410874 <= r2410938;
double r2410940 = r2410879 - r2410885;
double r2410941 = r2410877 / r2410880;
double r2410942 = r2410941 / r2410880;
double r2410943 = r2410942 + r2410941;
double r2410944 = r2410874 / r2410878;
double r2410945 = r2410943 * r2410944;
double r2410946 = r2410940 + r2410945;
double r2410947 = r2410879 / r2410946;
double r2410948 = 1.4454171454576948e+136;
bool r2410949 = r2410874 <= r2410948;
double r2410950 = r2410949 ? r2410910 : r2410947;
double r2410951 = r2410939 ? r2410947 : r2410950;
double r2410952 = r2410914 ? r2410937 : r2410951;
double r2410953 = r2410912 ? r2410892 : r2410952;
double r2410954 = r2410894 ? r2410910 : r2410953;
double r2410955 = r2410876 ? r2410892 : r2410954;
return r2410955;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -3.3972712623864903e+34 or -5.1631397836325573e-172 < t < -8.117479547197517e-196Initial program 44.7
Taylor expanded around -inf 6.1
Simplified6.1
if -3.3972712623864903e+34 < t < -5.1631397836325573e-172 or 1.6397433314236832e-160 < t < 1.4454171454576948e+136Initial program 26.3
Taylor expanded around inf 10.6
Simplified5.4
rmApplied add-cube-cbrt5.4
Applied associate-*l*5.3
if -8.117479547197517e-196 < t < 8.566610103260225e-208Initial program 61.7
Taylor expanded around inf 30.7
Simplified29.1
rmApplied add-cube-cbrt29.1
Applied associate-*l*29.1
rmApplied associate-*r/30.7
Applied flip3-+30.7
Applied associate-*r/30.7
Applied frac-add31.1
Applied sqrt-div25.5
Simplified25.6
if 8.566610103260225e-208 < t < 1.6397433314236832e-160 or 1.4454171454576948e+136 < t Initial program 58.6
Taylor expanded around inf 7.6
Simplified7.6
Final simplification8.5
herbie shell --seed 2019112
(FPCore (x l t)
:name "Toniolo and Linder, Equation (7)"
(/ (* (sqrt 2) t) (sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l)))))