\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 -1.091238342282279652261942994697011928938 \cdot 10^{-161}:\\
\;\;\;\;\frac{2}{\frac{\left(\left({\left(\sqrt[3]{t}\right)}^{3} \cdot \left(\frac{{\left(\sqrt[3]{\sqrt[3]{t} \cdot \sqrt[3]{t}}\right)}^{3}}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}} \cdot \left(\frac{{\left(\sqrt[3]{\sqrt[3]{t}}\right)}^{3}}{\sqrt[3]{\ell}} \cdot \sin k\right)\right)\right) \cdot \sin k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}{\frac{\ell}{{\left(\sqrt[3]{t}\right)}^{3}} \cdot \cos k}}\\
\mathbf{elif}\;t \le 2.79762899780724377948434741711709317234 \cdot 10^{-87}:\\
\;\;\;\;\frac{2}{\frac{\mathsf{fma}\left(2, \frac{{t}^{2} \cdot {\left(\sin k\right)}^{2}}{\ell}, \frac{{k}^{2} \cdot {\left(\sin k\right)}^{2}}{\ell}\right)}{\frac{\ell}{{\left(\sqrt[3]{t}\right)}^{3}} \cdot \cos k}}\\
\mathbf{elif}\;t \le 1.548691974798757807620953831394763089927 \cdot 10^{122}:\\
\;\;\;\;\frac{2}{\left(\left(\frac{{t}^{\left(\frac{3}{2}\right)}}{\ell} \cdot \left(\frac{{t}^{\left(\frac{3}{2}\right)}}{\ell} \cdot \sin k\right)\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{\left(\left({\left(\sqrt[3]{t}\right)}^{3} \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) \cdot \sin k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}{\frac{\ell}{{\left(\sqrt[3]{t}\right)}^{3}} \cdot \cos k}}\\
\end{array}double f(double t, double l, double k) {
double r143389 = 2.0;
double r143390 = t;
double r143391 = 3.0;
double r143392 = pow(r143390, r143391);
double r143393 = l;
double r143394 = r143393 * r143393;
double r143395 = r143392 / r143394;
double r143396 = k;
double r143397 = sin(r143396);
double r143398 = r143395 * r143397;
double r143399 = tan(r143396);
double r143400 = r143398 * r143399;
double r143401 = 1.0;
double r143402 = r143396 / r143390;
double r143403 = pow(r143402, r143389);
double r143404 = r143401 + r143403;
double r143405 = r143404 + r143401;
double r143406 = r143400 * r143405;
double r143407 = r143389 / r143406;
return r143407;
}
double f(double t, double l, double k) {
double r143408 = t;
double r143409 = -1.0912383422822797e-161;
bool r143410 = r143408 <= r143409;
double r143411 = 2.0;
double r143412 = cbrt(r143408);
double r143413 = 3.0;
double r143414 = pow(r143412, r143413);
double r143415 = r143412 * r143412;
double r143416 = cbrt(r143415);
double r143417 = pow(r143416, r143413);
double r143418 = l;
double r143419 = cbrt(r143418);
double r143420 = r143419 * r143419;
double r143421 = r143417 / r143420;
double r143422 = cbrt(r143412);
double r143423 = pow(r143422, r143413);
double r143424 = r143423 / r143419;
double r143425 = k;
double r143426 = sin(r143425);
double r143427 = r143424 * r143426;
double r143428 = r143421 * r143427;
double r143429 = r143414 * r143428;
double r143430 = r143429 * r143426;
double r143431 = 1.0;
double r143432 = r143425 / r143408;
double r143433 = pow(r143432, r143411);
double r143434 = r143431 + r143433;
double r143435 = r143434 + r143431;
double r143436 = r143430 * r143435;
double r143437 = r143418 / r143414;
double r143438 = cos(r143425);
double r143439 = r143437 * r143438;
double r143440 = r143436 / r143439;
double r143441 = r143411 / r143440;
double r143442 = 2.797628997807244e-87;
bool r143443 = r143408 <= r143442;
double r143444 = 2.0;
double r143445 = pow(r143408, r143444);
double r143446 = pow(r143426, r143444);
double r143447 = r143445 * r143446;
double r143448 = r143447 / r143418;
double r143449 = pow(r143425, r143444);
double r143450 = r143449 * r143446;
double r143451 = r143450 / r143418;
double r143452 = fma(r143411, r143448, r143451);
double r143453 = r143452 / r143439;
double r143454 = r143411 / r143453;
double r143455 = 1.5486919747987578e+122;
bool r143456 = r143408 <= r143455;
double r143457 = r143413 / r143444;
double r143458 = pow(r143408, r143457);
double r143459 = r143458 / r143418;
double r143460 = r143459 * r143426;
double r143461 = r143459 * r143460;
double r143462 = tan(r143425);
double r143463 = r143461 * r143462;
double r143464 = r143463 * r143435;
double r143465 = r143411 / r143464;
double r143466 = r143414 / r143418;
double r143467 = cbrt(r143426);
double r143468 = r143467 * r143467;
double r143469 = r143466 * r143468;
double r143470 = r143469 * r143467;
double r143471 = r143414 * r143470;
double r143472 = r143471 * r143426;
double r143473 = r143472 * r143435;
double r143474 = r143473 / r143439;
double r143475 = r143411 / r143474;
double r143476 = r143456 ? r143465 : r143475;
double r143477 = r143443 ? r143454 : r143476;
double r143478 = r143410 ? r143441 : r143477;
return r143478;
}



Bits error versus t



Bits error versus l



Bits error versus k
if t < -1.0912383422822797e-161Initial program 26.4
rmApplied add-cube-cbrt26.6
Applied unpow-prod-down26.6
Applied times-frac18.6
Applied associate-*l*16.5
rmApplied unpow-prod-down16.5
Applied associate-/l*12.4
rmApplied tan-quot12.4
Applied associate-*l/11.5
Applied frac-times9.7
Applied associate-*l/8.4
rmApplied add-cube-cbrt8.5
Applied add-cube-cbrt8.5
Applied cbrt-prod8.5
Applied unpow-prod-down8.5
Applied times-frac8.5
Applied associate-*l*8.4
if -1.0912383422822797e-161 < t < 2.797628997807244e-87Initial program 61.8
rmApplied add-cube-cbrt61.8
Applied unpow-prod-down61.8
Applied times-frac56.0
Applied associate-*l*56.0
rmApplied unpow-prod-down56.0
Applied associate-/l*46.4
rmApplied tan-quot46.4
Applied associate-*l/46.4
Applied frac-times47.5
Applied associate-*l/44.5
Taylor expanded around inf 23.4
Simplified23.4
if 2.797628997807244e-87 < t < 1.5486919747987578e+122Initial program 24.0
rmApplied sqr-pow24.0
Applied times-frac18.4
Applied associate-*l*13.8
if 1.5486919747987578e+122 < t Initial program 22.8
rmApplied add-cube-cbrt22.8
Applied unpow-prod-down22.8
Applied times-frac16.4
Applied associate-*l*15.9
rmApplied unpow-prod-down15.9
Applied associate-/l*7.0
rmApplied tan-quot7.0
Applied associate-*l/5.0
Applied frac-times1.5
Applied associate-*l/1.6
rmApplied add-cube-cbrt1.6
Applied associate-*r*1.6
Final simplification11.0
herbie shell --seed 2019356 +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))))