\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 6.05869271606677315 \cdot 10^{302}:\\
\;\;\;\;2 \cdot \left({\left(\frac{\sqrt{1}}{{k}^{\left(\frac{2}{2}\right)}}\right)}^{1} \cdot \left(\left({\left(\frac{1}{{k}^{\left(\frac{2}{2}\right)} \cdot {t}^{1}}\right)}^{1} \cdot \cos k\right) \cdot \frac{{\ell}^{2}}{{\left(\sin k\right)}^{2}}\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 r106898 = 2.0;
double r106899 = t;
double r106900 = 3.0;
double r106901 = pow(r106899, r106900);
double r106902 = l;
double r106903 = r106902 * r106902;
double r106904 = r106901 / r106903;
double r106905 = k;
double r106906 = sin(r106905);
double r106907 = r106904 * r106906;
double r106908 = tan(r106905);
double r106909 = r106907 * r106908;
double r106910 = 1.0;
double r106911 = r106905 / r106899;
double r106912 = pow(r106911, r106898);
double r106913 = r106910 + r106912;
double r106914 = r106913 - r106910;
double r106915 = r106909 * r106914;
double r106916 = r106898 / r106915;
return r106916;
}
double f(double t, double l, double k) {
double r106917 = l;
double r106918 = r106917 * r106917;
double r106919 = 6.058692716066773e+302;
bool r106920 = r106918 <= r106919;
double r106921 = 2.0;
double r106922 = 1.0;
double r106923 = sqrt(r106922);
double r106924 = k;
double r106925 = 2.0;
double r106926 = r106921 / r106925;
double r106927 = pow(r106924, r106926);
double r106928 = r106923 / r106927;
double r106929 = 1.0;
double r106930 = pow(r106928, r106929);
double r106931 = t;
double r106932 = pow(r106931, r106929);
double r106933 = r106927 * r106932;
double r106934 = r106922 / r106933;
double r106935 = pow(r106934, r106929);
double r106936 = cos(r106924);
double r106937 = r106935 * r106936;
double r106938 = pow(r106917, r106925);
double r106939 = sin(r106924);
double r106940 = pow(r106939, r106925);
double r106941 = r106938 / r106940;
double r106942 = r106937 * r106941;
double r106943 = r106930 * r106942;
double r106944 = r106921 * r106943;
double r106945 = 3.0;
double r106946 = pow(r106931, r106945);
double r106947 = r106921 / r106946;
double r106948 = tan(r106924);
double r106949 = r106939 * r106948;
double r106950 = r106924 / r106931;
double r106951 = pow(r106950, r106921);
double r106952 = r106949 * r106951;
double r106953 = r106947 / r106952;
double r106954 = r106953 * r106917;
double r106955 = r106954 * r106917;
double r106956 = r106920 ? r106944 : r106955;
return r106956;
}



Bits error versus t



Bits error versus l



Bits error versus k
Results
if (* l l) < 6.058692716066773e+302Initial program 45.1
Simplified36.5
Taylor expanded around inf 14.2
rmApplied sqr-pow14.2
Applied associate-*l*11.8
rmApplied add-sqr-sqrt11.8
Applied times-frac11.6
Applied unpow-prod-down11.6
Applied associate-*l*9.8
Simplified9.8
rmApplied *-un-lft-identity9.8
Applied unpow-prod-down9.8
Applied times-frac9.8
Applied associate-*r*9.8
Simplified9.8
if 6.058692716066773e+302 < (* l l) Initial program 63.7
Simplified63.5
rmApplied associate-*r*52.5
Final simplification16.7
herbie shell --seed 2020046 +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))))