\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 -5.21677149703150968862750332699214575042 \cdot 10^{156}:\\
\;\;\;\;\frac{\frac{2}{\frac{\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}} \cdot \left(\left(\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\sqrt[3]{\ell}} \cdot \left(\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell} \cdot \sin k\right)\right) \cdot \sin k\right)}{\cos k}}}{\mathsf{fma}\left(2, 1, {\left(\frac{k}{t}\right)}^{2}\right)}\\
\mathbf{elif}\;t \le -6.34580006981264525376508306574530893442 \cdot 10^{-84}:\\
\;\;\;\;\frac{\frac{2}{\left(\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}} \cdot \left(\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\sqrt[3]{\ell}} \cdot \left({\left(\sqrt[3]{t}\right)}^{3} \cdot \sin k\right)\right)\right) \cdot \tan k}}{\frac{\mathsf{fma}\left(2, 1, {\left(\frac{k}{t}\right)}^{2}\right)}{\ell}}\\
\mathbf{elif}\;t \le 2.793702058652750487287912062027841951271 \cdot 10^{-102}:\\
\;\;\;\;\frac{\frac{2}{\left(\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}} \cdot \left(\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\sqrt[3]{\ell}} \cdot \left(\frac{k \cdot t}{\ell} - \frac{1}{6} \cdot \frac{{k}^{3} \cdot t}{\ell}\right)\right)\right) \cdot \tan k}}{\mathsf{fma}\left(2, 1, {\left(\frac{k}{t}\right)}^{2}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{2}{\frac{\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}} \cdot \left(\left(\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\sqrt[3]{\ell}} \cdot \left(\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell} \cdot \sin k\right)\right) \cdot \sin k\right)}{\cos k}}}{\mathsf{fma}\left(2, 1, {\left(\frac{k}{t}\right)}^{2}\right)}\\
\end{array}double f(double t, double l, double k) {
double r116757 = 2.0;
double r116758 = t;
double r116759 = 3.0;
double r116760 = pow(r116758, r116759);
double r116761 = l;
double r116762 = r116761 * r116761;
double r116763 = r116760 / r116762;
double r116764 = k;
double r116765 = sin(r116764);
double r116766 = r116763 * r116765;
double r116767 = tan(r116764);
double r116768 = r116766 * r116767;
double r116769 = 1.0;
double r116770 = r116764 / r116758;
double r116771 = pow(r116770, r116757);
double r116772 = r116769 + r116771;
double r116773 = r116772 + r116769;
double r116774 = r116768 * r116773;
double r116775 = r116757 / r116774;
return r116775;
}
double f(double t, double l, double k) {
double r116776 = t;
double r116777 = -5.21677149703151e+156;
bool r116778 = r116776 <= r116777;
double r116779 = 2.0;
double r116780 = cbrt(r116776);
double r116781 = 3.0;
double r116782 = pow(r116780, r116781);
double r116783 = l;
double r116784 = cbrt(r116783);
double r116785 = r116784 * r116784;
double r116786 = r116782 / r116785;
double r116787 = r116782 / r116784;
double r116788 = r116782 / r116783;
double r116789 = k;
double r116790 = sin(r116789);
double r116791 = r116788 * r116790;
double r116792 = r116787 * r116791;
double r116793 = r116792 * r116790;
double r116794 = r116786 * r116793;
double r116795 = cos(r116789);
double r116796 = r116794 / r116795;
double r116797 = r116779 / r116796;
double r116798 = 2.0;
double r116799 = 1.0;
double r116800 = r116789 / r116776;
double r116801 = pow(r116800, r116779);
double r116802 = fma(r116798, r116799, r116801);
double r116803 = r116797 / r116802;
double r116804 = -6.345800069812645e-84;
bool r116805 = r116776 <= r116804;
double r116806 = r116782 * r116790;
double r116807 = r116787 * r116806;
double r116808 = r116786 * r116807;
double r116809 = tan(r116789);
double r116810 = r116808 * r116809;
double r116811 = r116779 / r116810;
double r116812 = r116802 / r116783;
double r116813 = r116811 / r116812;
double r116814 = 2.7937020586527505e-102;
bool r116815 = r116776 <= r116814;
double r116816 = r116789 * r116776;
double r116817 = r116816 / r116783;
double r116818 = 0.16666666666666666;
double r116819 = 3.0;
double r116820 = pow(r116789, r116819);
double r116821 = r116820 * r116776;
double r116822 = r116821 / r116783;
double r116823 = r116818 * r116822;
double r116824 = r116817 - r116823;
double r116825 = r116787 * r116824;
double r116826 = r116786 * r116825;
double r116827 = r116826 * r116809;
double r116828 = r116779 / r116827;
double r116829 = r116828 / r116802;
double r116830 = r116815 ? r116829 : r116803;
double r116831 = r116805 ? r116813 : r116830;
double r116832 = r116778 ? r116803 : r116831;
return r116832;
}



Bits error versus t



Bits error versus l



Bits error versus k
if t < -5.21677149703151e+156 or 2.7937020586527505e-102 < t Initial program 23.7
Simplified23.7
rmApplied add-cube-cbrt23.8
Applied unpow-prod-down23.8
Applied times-frac17.9
Applied associate-*l*16.2
rmApplied add-cube-cbrt16.2
Applied unpow-prod-down16.2
Applied times-frac9.3
rmApplied associate-*l*7.9
rmApplied tan-quot7.9
Applied associate-*r/7.9
Simplified5.7
if -5.21677149703151e+156 < t < -6.345800069812645e-84Initial program 24.2
Simplified24.2
rmApplied add-cube-cbrt24.5
Applied unpow-prod-down24.5
Applied times-frac17.1
Applied associate-*l*12.5
rmApplied add-cube-cbrt12.6
Applied unpow-prod-down12.6
Applied times-frac12.4
rmApplied associate-*l*12.1
rmApplied associate-*l/12.3
Applied associate-*r/12.3
Applied associate-*r/12.5
Applied associate-*l/11.6
Applied associate-/r/11.7
Applied associate-/l*9.9
if -6.345800069812645e-84 < t < 2.7937020586527505e-102Initial program 61.4
Simplified61.5
rmApplied add-cube-cbrt61.5
Applied unpow-prod-down61.5
Applied times-frac52.1
Applied associate-*l*52.0
rmApplied add-cube-cbrt52.0
Applied unpow-prod-down52.0
Applied times-frac43.9
rmApplied associate-*l*43.9
Taylor expanded around 0 39.0
Final simplification14.5
herbie shell --seed 2019303 +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))))