\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 -0.04956632389129420057649610953376395627856:\\
\;\;\;\;\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 \sin k} \cdot \sqrt[3]{\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell} \cdot \sin k}\right) \cdot \sqrt[3]{\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell} \cdot \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}}\\
\mathbf{elif}\;t \le 5.664702255757937422272483016053542230277 \cdot 10^{-60}:\\
\;\;\;\;\frac{2}{\frac{\mathsf{fma}\left(2, {\left(\frac{1}{{-1}^{2}}\right)}^{1} \cdot \frac{{t}^{2} \cdot {\left(\sin k\right)}^{2}}{\ell}, {\left(\frac{1}{{-1}^{2}}\right)}^{1} \cdot \frac{{k}^{2} \cdot {\left(\sin k\right)}^{2}}{\ell}\right)}{\frac{\ell}{{\left(\sqrt[3]{t}\right)}^{3}} \cdot \cos k}}\\
\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 r121322 = 2.0;
double r121323 = t;
double r121324 = 3.0;
double r121325 = pow(r121323, r121324);
double r121326 = l;
double r121327 = r121326 * r121326;
double r121328 = r121325 / r121327;
double r121329 = k;
double r121330 = sin(r121329);
double r121331 = r121328 * r121330;
double r121332 = tan(r121329);
double r121333 = r121331 * r121332;
double r121334 = 1.0;
double r121335 = r121329 / r121323;
double r121336 = pow(r121335, r121322);
double r121337 = r121334 + r121336;
double r121338 = r121337 + r121334;
double r121339 = r121333 * r121338;
double r121340 = r121322 / r121339;
return r121340;
}
double f(double t, double l, double k) {
double r121341 = t;
double r121342 = -0.0495663238912942;
bool r121343 = r121341 <= r121342;
double r121344 = 2.0;
double r121345 = cbrt(r121341);
double r121346 = 3.0;
double r121347 = pow(r121345, r121346);
double r121348 = l;
double r121349 = r121347 / r121348;
double r121350 = k;
double r121351 = sin(r121350);
double r121352 = r121349 * r121351;
double r121353 = cbrt(r121352);
double r121354 = r121353 * r121353;
double r121355 = r121354 * r121353;
double r121356 = r121347 * r121355;
double r121357 = r121356 * r121351;
double r121358 = 1.0;
double r121359 = r121350 / r121341;
double r121360 = pow(r121359, r121344);
double r121361 = r121358 + r121360;
double r121362 = r121361 + r121358;
double r121363 = r121357 * r121362;
double r121364 = r121348 / r121347;
double r121365 = cos(r121350);
double r121366 = r121364 * r121365;
double r121367 = r121363 / r121366;
double r121368 = r121344 / r121367;
double r121369 = 5.664702255757937e-60;
bool r121370 = r121341 <= r121369;
double r121371 = 1.0;
double r121372 = -1.0;
double r121373 = pow(r121372, r121344);
double r121374 = r121371 / r121373;
double r121375 = pow(r121374, r121358);
double r121376 = 2.0;
double r121377 = pow(r121341, r121376);
double r121378 = pow(r121351, r121376);
double r121379 = r121377 * r121378;
double r121380 = r121379 / r121348;
double r121381 = r121375 * r121380;
double r121382 = pow(r121350, r121376);
double r121383 = r121382 * r121378;
double r121384 = r121383 / r121348;
double r121385 = r121375 * r121384;
double r121386 = fma(r121344, r121381, r121385);
double r121387 = r121386 / r121366;
double r121388 = r121344 / r121387;
double r121389 = cbrt(r121351);
double r121390 = r121389 * r121389;
double r121391 = r121349 * r121390;
double r121392 = r121391 * r121389;
double r121393 = r121347 * r121392;
double r121394 = r121393 * r121351;
double r121395 = r121394 * r121362;
double r121396 = r121395 / r121366;
double r121397 = r121344 / r121396;
double r121398 = r121370 ? r121388 : r121397;
double r121399 = r121343 ? r121368 : r121398;
return r121399;
}



Bits error versus t



Bits error versus l



Bits error versus k
if t < -0.0495663238912942Initial program 22.9
rmApplied add-cube-cbrt23.1
Applied unpow-prod-down23.1
Applied times-frac15.7
Applied associate-*l*13.7
rmApplied unpow-prod-down13.7
Applied associate-/l*7.4
rmApplied tan-quot7.4
Applied associate-*l/5.8
Applied frac-times3.4
Applied associate-*l/3.3
rmApplied add-cube-cbrt3.3
if -0.0495663238912942 < t < 5.664702255757937e-60Initial program 52.8
rmApplied add-cube-cbrt52.9
Applied unpow-prod-down52.9
Applied times-frac44.9
Applied associate-*l*44.0
rmApplied unpow-prod-down44.0
Applied associate-/l*37.8
rmApplied tan-quot37.8
Applied associate-*l/37.9
Applied frac-times39.2
Applied associate-*l/35.7
Taylor expanded around -inf 23.2
Simplified23.2
if 5.664702255757937e-60 < t Initial program 22.1
rmApplied add-cube-cbrt22.3
Applied unpow-prod-down22.3
Applied times-frac15.4
Applied associate-*l*13.6
rmApplied unpow-prod-down13.5
Applied associate-/l*8.4
rmApplied tan-quot8.4
Applied associate-*l/7.1
Applied frac-times5.2
Applied associate-*l/4.8
rmApplied add-cube-cbrt4.8
Applied associate-*r*4.8
Final simplification10.6
herbie shell --seed 2019326 +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))))