\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 -4.687929201103464801150333038266447422274 \cdot 10^{-146}:\\
\;\;\;\;\frac{\frac{2}{\left(\frac{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{\left(\frac{3}{2}\right)}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}} \cdot \left(\frac{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{\left(\frac{3}{2}\right)}}{\sqrt[3]{\ell}} \cdot \left(\left(\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell} \cdot \left(\sqrt[3]{\sin k} \cdot \sqrt[3]{\sin k}\right)\right) \cdot \sqrt[3]{\sin k}\right)\right)\right) \cdot \tan k}}{\mathsf{fma}\left(2, 1, {\left(\frac{k}{t}\right)}^{2}\right)}\\
\mathbf{elif}\;t \le 4.25422455575620296122705841039579322481 \cdot 10^{-277}:\\
\;\;\;\;\frac{\frac{2}{\left(\frac{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{\left(\frac{3}{2}\right)}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}} \cdot \left(\frac{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{\left(\frac{3}{2}\right)}}{\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{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{\left(\frac{3}{2}\right)}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}} \cdot \left(\left(\frac{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{\left(\frac{3}{2}\right)}}{\sqrt[3]{\ell}} \cdot \left(\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell} \cdot \sin k\right)\right) \cdot \tan k\right)}}{\mathsf{fma}\left(2, 1, {\left(\frac{k}{t}\right)}^{2}\right)}\\
\end{array}double f(double t, double l, double k) {
double r111732 = 2.0;
double r111733 = t;
double r111734 = 3.0;
double r111735 = pow(r111733, r111734);
double r111736 = l;
double r111737 = r111736 * r111736;
double r111738 = r111735 / r111737;
double r111739 = k;
double r111740 = sin(r111739);
double r111741 = r111738 * r111740;
double r111742 = tan(r111739);
double r111743 = r111741 * r111742;
double r111744 = 1.0;
double r111745 = r111739 / r111733;
double r111746 = pow(r111745, r111732);
double r111747 = r111744 + r111746;
double r111748 = r111747 + r111744;
double r111749 = r111743 * r111748;
double r111750 = r111732 / r111749;
return r111750;
}
double f(double t, double l, double k) {
double r111751 = t;
double r111752 = -4.687929201103465e-146;
bool r111753 = r111751 <= r111752;
double r111754 = 2.0;
double r111755 = cbrt(r111751);
double r111756 = r111755 * r111755;
double r111757 = 3.0;
double r111758 = 2.0;
double r111759 = r111757 / r111758;
double r111760 = pow(r111756, r111759);
double r111761 = l;
double r111762 = cbrt(r111761);
double r111763 = r111762 * r111762;
double r111764 = r111760 / r111763;
double r111765 = r111760 / r111762;
double r111766 = pow(r111755, r111757);
double r111767 = r111766 / r111761;
double r111768 = k;
double r111769 = sin(r111768);
double r111770 = cbrt(r111769);
double r111771 = r111770 * r111770;
double r111772 = r111767 * r111771;
double r111773 = r111772 * r111770;
double r111774 = r111765 * r111773;
double r111775 = r111764 * r111774;
double r111776 = tan(r111768);
double r111777 = r111775 * r111776;
double r111778 = r111754 / r111777;
double r111779 = 1.0;
double r111780 = r111768 / r111751;
double r111781 = pow(r111780, r111754);
double r111782 = fma(r111758, r111779, r111781);
double r111783 = r111778 / r111782;
double r111784 = 4.254224555756203e-277;
bool r111785 = r111751 <= r111784;
double r111786 = r111768 * r111751;
double r111787 = r111786 / r111761;
double r111788 = 0.16666666666666666;
double r111789 = 3.0;
double r111790 = pow(r111768, r111789);
double r111791 = r111790 * r111751;
double r111792 = r111791 / r111761;
double r111793 = r111788 * r111792;
double r111794 = r111787 - r111793;
double r111795 = r111765 * r111794;
double r111796 = r111764 * r111795;
double r111797 = r111796 * r111776;
double r111798 = r111754 / r111797;
double r111799 = r111798 / r111782;
double r111800 = r111767 * r111769;
double r111801 = r111765 * r111800;
double r111802 = r111801 * r111776;
double r111803 = r111764 * r111802;
double r111804 = r111754 / r111803;
double r111805 = r111804 / r111782;
double r111806 = r111785 ? r111799 : r111805;
double r111807 = r111753 ? r111783 : r111806;
return r111807;
}



Bits error versus t



Bits error versus l



Bits error versus k
if t < -4.687929201103465e-146Initial program 26.0
Simplified26.0
rmApplied add-cube-cbrt26.2
Applied unpow-prod-down26.2
Applied times-frac18.1
Applied associate-*l*16.2
rmApplied add-cube-cbrt16.2
Applied sqr-pow16.2
Applied times-frac11.6
rmApplied associate-*l*10.6
rmApplied add-cube-cbrt10.7
Applied associate-*r*10.6
if -4.687929201103465e-146 < t < 4.254224555756203e-277Initial program 64.0
Simplified64.0
rmApplied add-cube-cbrt64.0
Applied unpow-prod-down64.0
Applied times-frac61.8
Applied associate-*l*61.7
rmApplied add-cube-cbrt61.8
Applied sqr-pow61.8
Applied times-frac53.0
rmApplied associate-*l*53.0
Taylor expanded around 0 42.7
if 4.254224555756203e-277 < t Initial program 30.8
Simplified30.8
rmApplied add-cube-cbrt30.9
Applied unpow-prod-down30.9
Applied times-frac23.5
Applied associate-*l*21.6
rmApplied add-cube-cbrt21.6
Applied sqr-pow21.6
Applied times-frac16.2
rmApplied associate-*l*15.5
rmApplied associate-*l*14.3
Final simplification15.9
herbie shell --seed 2019347 +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))))