\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 \le 5.4119406433808711 \cdot 10^{-63}:\\
\;\;\;\;\frac{2}{\frac{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{\left(\frac{3}{2}\right)} \cdot \left(\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell} \cdot \sin k\right)}{\frac{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}{\tan k}} \cdot \frac{\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1}{\frac{\sqrt[3]{\ell}}{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{\left(\frac{3}{2}\right)}}}}\\
\mathbf{elif}\;\ell \le 1297920887946261000:\\
\;\;\;\;\frac{2}{2 \cdot \frac{{t}^{3} \cdot {\left(\sin k\right)}^{2}}{\cos k \cdot {\ell}^{2}} - {\left(\frac{1}{{-1}^{3}}\right)}^{1} \cdot \frac{t \cdot \left({k}^{2} \cdot {\left(\sin k\right)}^{2}\right)}{\cos k \cdot {\ell}^{2}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{\left(\sqrt[3]{\left(\left({\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{\left(\frac{3}{2}\right)} \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)} \cdot \sqrt[3]{\left(\left({\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{\left(\frac{3}{2}\right)} \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)}\right) \cdot \sqrt[3]{\left(\left({\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{\left(\frac{3}{2}\right)} \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)}}{\frac{\ell}{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{\left(\frac{3}{2}\right)}}}}\\
\end{array}double f(double t, double l, double k) {
double r142808 = 2.0;
double r142809 = t;
double r142810 = 3.0;
double r142811 = pow(r142809, r142810);
double r142812 = l;
double r142813 = r142812 * r142812;
double r142814 = r142811 / r142813;
double r142815 = k;
double r142816 = sin(r142815);
double r142817 = r142814 * r142816;
double r142818 = tan(r142815);
double r142819 = r142817 * r142818;
double r142820 = 1.0;
double r142821 = r142815 / r142809;
double r142822 = pow(r142821, r142808);
double r142823 = r142820 + r142822;
double r142824 = r142823 + r142820;
double r142825 = r142819 * r142824;
double r142826 = r142808 / r142825;
return r142826;
}
double f(double t, double l, double k) {
double r142827 = l;
double r142828 = 5.411940643380871e-63;
bool r142829 = r142827 <= r142828;
double r142830 = 2.0;
double r142831 = t;
double r142832 = cbrt(r142831);
double r142833 = r142832 * r142832;
double r142834 = 3.0;
double r142835 = 2.0;
double r142836 = r142834 / r142835;
double r142837 = pow(r142833, r142836);
double r142838 = pow(r142832, r142834);
double r142839 = r142838 / r142827;
double r142840 = k;
double r142841 = sin(r142840);
double r142842 = r142839 * r142841;
double r142843 = r142837 * r142842;
double r142844 = cbrt(r142827);
double r142845 = r142844 * r142844;
double r142846 = tan(r142840);
double r142847 = r142845 / r142846;
double r142848 = r142843 / r142847;
double r142849 = 1.0;
double r142850 = r142840 / r142831;
double r142851 = pow(r142850, r142830);
double r142852 = r142849 + r142851;
double r142853 = r142852 + r142849;
double r142854 = r142844 / r142837;
double r142855 = r142853 / r142854;
double r142856 = r142848 * r142855;
double r142857 = r142830 / r142856;
double r142858 = 1.297920887946261e+18;
bool r142859 = r142827 <= r142858;
double r142860 = 3.0;
double r142861 = pow(r142831, r142860);
double r142862 = pow(r142841, r142835);
double r142863 = r142861 * r142862;
double r142864 = cos(r142840);
double r142865 = pow(r142827, r142835);
double r142866 = r142864 * r142865;
double r142867 = r142863 / r142866;
double r142868 = r142830 * r142867;
double r142869 = 1.0;
double r142870 = -1.0;
double r142871 = pow(r142870, r142834);
double r142872 = r142869 / r142871;
double r142873 = pow(r142872, r142849);
double r142874 = pow(r142840, r142835);
double r142875 = r142874 * r142862;
double r142876 = r142831 * r142875;
double r142877 = r142876 / r142866;
double r142878 = r142873 * r142877;
double r142879 = r142868 - r142878;
double r142880 = r142830 / r142879;
double r142881 = r142843 * r142846;
double r142882 = r142881 * r142853;
double r142883 = cbrt(r142882);
double r142884 = r142883 * r142883;
double r142885 = r142884 * r142883;
double r142886 = r142827 / r142837;
double r142887 = r142885 / r142886;
double r142888 = r142830 / r142887;
double r142889 = r142859 ? r142880 : r142888;
double r142890 = r142829 ? r142857 : r142889;
return r142890;
}



Bits error versus t



Bits error versus l



Bits error versus k
Results
if l < 5.411940643380871e-63Initial program 29.6
rmApplied add-cube-cbrt29.7
Applied unpow-prod-down29.7
Applied times-frac23.1
Applied associate-*l*20.8
rmApplied sqr-pow20.8
Applied associate-/l*15.3
rmApplied associate-*l/14.5
Applied associate-*l/14.0
Applied associate-*l/12.9
rmApplied *-un-lft-identity12.9
Applied add-cube-cbrt13.0
Applied times-frac13.0
Applied times-frac13.7
Simplified12.6
if 5.411940643380871e-63 < l < 1.297920887946261e+18Initial program 22.9
Taylor expanded around -inf 12.9
if 1.297920887946261e+18 < l Initial program 48.3
rmApplied add-cube-cbrt48.4
Applied unpow-prod-down48.4
Applied times-frac36.1
Applied associate-*l*35.9
rmApplied sqr-pow35.9
Applied associate-/l*25.9
rmApplied associate-*l/24.1
Applied associate-*l/22.6
Applied associate-*l/20.9
rmApplied add-cube-cbrt20.9
Final simplification14.3
herbie shell --seed 2020083 +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))))