\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}\;t \le -3.2960043834370989 \cdot 10^{-99}:\\
\;\;\;\;\frac{2}{\frac{\frac{\left(\left({\left(\sqrt[3]{t}\right)}^{3} \cdot \left(\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell} \cdot \sin k\right)\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}{\sqrt[3]{\frac{\ell}{{\left(\sqrt[3]{t}\right)}^{3}}} \cdot \sqrt[3]{\frac{\ell}{{\left(\sqrt[3]{t}\right)}^{3}}}}}{\sqrt[3]{\frac{\ell}{{\left(\sqrt[3]{t}\right)}^{3}}}}}\\
\mathbf{elif}\;t \le 3.01176032494024291 \cdot 10^{-118}:\\
\;\;\;\;\frac{2}{\frac{\mathsf{fma}\left({\left(\frac{1}{{-1}^{2}}\right)}^{1}, \frac{{k}^{2} \cdot {\left(\sin k\right)}^{2}}{\cos k \cdot \ell}, 2 \cdot \left({\left(\frac{1}{{-1}^{2}}\right)}^{1} \cdot \frac{{\left(\sqrt[3]{-1}\right)}^{6} \cdot \left({t}^{2} \cdot {\left(\sin k\right)}^{2}\right)}{\cos k \cdot \ell}\right)\right)}{\frac{\ell}{{\left(\sqrt[3]{t}\right)}^{3}}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{\left(\left({\left(\sqrt[3]{t}\right)}^{3} \cdot \left(\left(\sqrt[3]{\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell}} \cdot \sqrt[3]{\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell}}\right) \cdot \left(\sqrt[3]{\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell}} \cdot \sin k\right)\right)\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}{\frac{\ell}{{\left(\sqrt[3]{t}\right)}^{3}}}}\\
\end{array}double f(double t, double l, double k) {
double r156954 = 2.0;
double r156955 = t;
double r156956 = 3.0;
double r156957 = pow(r156955, r156956);
double r156958 = l;
double r156959 = r156958 * r156958;
double r156960 = r156957 / r156959;
double r156961 = k;
double r156962 = sin(r156961);
double r156963 = r156960 * r156962;
double r156964 = tan(r156961);
double r156965 = r156963 * r156964;
double r156966 = 1.0;
double r156967 = r156961 / r156955;
double r156968 = pow(r156967, r156954);
double r156969 = r156966 + r156968;
double r156970 = r156969 + r156966;
double r156971 = r156965 * r156970;
double r156972 = r156954 / r156971;
return r156972;
}
double f(double t, double l, double k) {
double r156973 = t;
double r156974 = -3.296004383437099e-99;
bool r156975 = r156973 <= r156974;
double r156976 = 2.0;
double r156977 = cbrt(r156973);
double r156978 = 3.0;
double r156979 = pow(r156977, r156978);
double r156980 = l;
double r156981 = r156979 / r156980;
double r156982 = k;
double r156983 = sin(r156982);
double r156984 = r156981 * r156983;
double r156985 = r156979 * r156984;
double r156986 = tan(r156982);
double r156987 = r156985 * r156986;
double r156988 = 1.0;
double r156989 = r156982 / r156973;
double r156990 = pow(r156989, r156976);
double r156991 = r156988 + r156990;
double r156992 = r156991 + r156988;
double r156993 = r156987 * r156992;
double r156994 = r156980 / r156979;
double r156995 = cbrt(r156994);
double r156996 = r156995 * r156995;
double r156997 = r156993 / r156996;
double r156998 = r156997 / r156995;
double r156999 = r156976 / r156998;
double r157000 = 3.011760324940243e-118;
bool r157001 = r156973 <= r157000;
double r157002 = 1.0;
double r157003 = -1.0;
double r157004 = pow(r157003, r156976);
double r157005 = r157002 / r157004;
double r157006 = pow(r157005, r156988);
double r157007 = 2.0;
double r157008 = pow(r156982, r157007);
double r157009 = pow(r156983, r157007);
double r157010 = r157008 * r157009;
double r157011 = cos(r156982);
double r157012 = r157011 * r156980;
double r157013 = r157010 / r157012;
double r157014 = cbrt(r157003);
double r157015 = 6.0;
double r157016 = pow(r157014, r157015);
double r157017 = pow(r156973, r157007);
double r157018 = r157017 * r157009;
double r157019 = r157016 * r157018;
double r157020 = r157019 / r157012;
double r157021 = r157006 * r157020;
double r157022 = r156976 * r157021;
double r157023 = fma(r157006, r157013, r157022);
double r157024 = r157023 / r156994;
double r157025 = r156976 / r157024;
double r157026 = cbrt(r156981);
double r157027 = r157026 * r157026;
double r157028 = r157026 * r156983;
double r157029 = r157027 * r157028;
double r157030 = r156979 * r157029;
double r157031 = r157030 * r156986;
double r157032 = r157031 * r156992;
double r157033 = r157032 / r156994;
double r157034 = r156976 / r157033;
double r157035 = r157001 ? r157025 : r157034;
double r157036 = r156975 ? r156999 : r157035;
return r157036;
}



Bits error versus t



Bits error versus l



Bits error versus k
if t < -3.296004383437099e-99Initial program 23.0
rmApplied add-cube-cbrt23.2
Applied unpow-prod-down23.2
Applied times-frac16.8
Applied associate-*l*14.1
rmApplied unpow-prod-down14.1
Applied associate-/l*9.7
rmApplied associate-*l/8.4
Applied associate-*l/7.0
Applied associate-*l/6.3
rmApplied add-cube-cbrt6.3
Applied associate-/r*6.3
if -3.296004383437099e-99 < t < 3.011760324940243e-118Initial program 63.1
rmApplied add-cube-cbrt63.1
Applied unpow-prod-down63.1
Applied times-frac53.9
Applied associate-*l*53.9
rmApplied unpow-prod-down53.9
Applied associate-/l*44.9
rmApplied associate-*l/44.9
Applied associate-*l/45.9
Applied associate-*l/42.5
Taylor expanded around -inf 24.1
Simplified24.1
if 3.011760324940243e-118 < t Initial program 23.9
rmApplied add-cube-cbrt24.1
Applied unpow-prod-down24.1
Applied times-frac17.7
Applied associate-*l*16.1
rmApplied unpow-prod-down16.1
Applied associate-/l*11.3
rmApplied associate-*l/10.3
Applied associate-*l/8.2
Applied associate-*l/7.2
rmApplied add-cube-cbrt7.2
Applied associate-*l*7.2
Final simplification10.7
herbie shell --seed 2020036 +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))))