\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)}\begin{array}{l}
\mathbf{if}\;\ell \cdot \ell \le 4.1809042033014301 \cdot 10^{287}:\\
\;\;\;\;2 \cdot \left({\left(\frac{1}{{k}^{\left(\frac{2}{2}\right)} \cdot \left({k}^{\left(\frac{2}{2}\right)} \cdot {t}^{1}\right)}\right)}^{1} \cdot \left(\frac{\cos k \cdot {\ell}^{2}}{\sin k} \cdot \frac{1}{\sin k}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{\frac{2}{{t}^{3}}}{\left(\sin k \cdot \tan k\right) \cdot {\left(\frac{k}{t}\right)}^{2}} \cdot \ell\right) \cdot \ell\\
\end{array}double f(double t, double l, double k) {
double r114901 = 2.0;
double r114902 = t;
double r114903 = 3.0;
double r114904 = pow(r114902, r114903);
double r114905 = l;
double r114906 = r114905 * r114905;
double r114907 = r114904 / r114906;
double r114908 = k;
double r114909 = sin(r114908);
double r114910 = r114907 * r114909;
double r114911 = tan(r114908);
double r114912 = r114910 * r114911;
double r114913 = 1.0;
double r114914 = r114908 / r114902;
double r114915 = pow(r114914, r114901);
double r114916 = r114913 + r114915;
double r114917 = r114916 - r114913;
double r114918 = r114912 * r114917;
double r114919 = r114901 / r114918;
return r114919;
}
double f(double t, double l, double k) {
double r114920 = l;
double r114921 = r114920 * r114920;
double r114922 = 4.18090420330143e+287;
bool r114923 = r114921 <= r114922;
double r114924 = 2.0;
double r114925 = 1.0;
double r114926 = k;
double r114927 = 2.0;
double r114928 = r114924 / r114927;
double r114929 = pow(r114926, r114928);
double r114930 = t;
double r114931 = 1.0;
double r114932 = pow(r114930, r114931);
double r114933 = r114929 * r114932;
double r114934 = r114929 * r114933;
double r114935 = r114925 / r114934;
double r114936 = pow(r114935, r114931);
double r114937 = cos(r114926);
double r114938 = pow(r114920, r114927);
double r114939 = r114937 * r114938;
double r114940 = sin(r114926);
double r114941 = r114939 / r114940;
double r114942 = r114925 / r114940;
double r114943 = r114941 * r114942;
double r114944 = r114936 * r114943;
double r114945 = r114924 * r114944;
double r114946 = 3.0;
double r114947 = pow(r114930, r114946);
double r114948 = r114924 / r114947;
double r114949 = tan(r114926);
double r114950 = r114940 * r114949;
double r114951 = r114926 / r114930;
double r114952 = pow(r114951, r114924);
double r114953 = r114950 * r114952;
double r114954 = r114948 / r114953;
double r114955 = r114954 * r114920;
double r114956 = r114955 * r114920;
double r114957 = r114923 ? r114945 : r114956;
return r114957;
}



Bits error versus t



Bits error versus l



Bits error versus k
Results
if (* l l) < 4.18090420330143e+287Initial program 45.2
Simplified36.7
Taylor expanded around inf 14.2
rmApplied sqr-pow14.2
Applied associate-*l*12.0
rmApplied unpow212.0
Applied associate-/r*11.6
rmApplied div-inv11.6
if 4.18090420330143e+287 < (* l l) Initial program 62.3
Simplified62.2
rmApplied associate-*r*54.3
Final simplification18.4
herbie shell --seed 2020045 +o rules:numerics
(FPCore (t l k)
:name "Toniolo and Linder, Equation (10-)"
:precision binary64
(/ 2 (* (* (* (/ (pow t 3) (* l l)) (sin k)) (tan k)) (- (+ 1 (pow (/ k t) 2)) 1))))