\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 -7.34197474785895879644805628021741244835 \cdot 10^{153}:\\
\;\;\;\;\frac{\frac{2}{\left(\frac{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{3}}{\ell} \cdot \left(\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell} \cdot \sin k\right)\right) \cdot \tan k}}{{\left(\frac{k}{t}\right)}^{2}}\\
\mathbf{elif}\;\ell \le -7.73053853034813306892850214854505772544 \cdot 10^{-163}:\\
\;\;\;\;\left(\left({\left(\left(\sqrt[3]{\frac{1}{{k}^{\left(\frac{2}{2}\right)} \cdot {t}^{1}}} \cdot \sqrt[3]{\frac{1}{{k}^{\left(\frac{2}{2}\right)} \cdot {t}^{1}}}\right) \cdot \sqrt[3]{\frac{1}{{k}^{\left(\frac{2}{2}\right)} \cdot {t}^{1}}}\right)}^{1} \cdot \frac{\cos k \cdot {\ell}^{2}}{{\left(\sin k\right)}^{2}}\right) \cdot {\left(\frac{1}{{k}^{\left(\frac{2}{2}\right)}}\right)}^{1}\right) \cdot 2\\
\mathbf{elif}\;\ell \le 1.026944545197601870162749096367448505013 \cdot 10^{-127}:\\
\;\;\;\;2 \cdot \left({\left(\frac{1}{{k}^{\left(\frac{2}{2}\right)} \cdot \left({k}^{\left(\frac{2}{2}\right)} \cdot {t}^{1}\right)}\right)}^{1} \cdot \mathsf{fma}\left(\frac{\ell}{k}, \frac{\ell}{k}, {\ell}^{2} \cdot \frac{-1}{6}\right)\right)\\
\mathbf{elif}\;\ell \le 4.162486401097287709225438879584039218636 \cdot 10^{148}:\\
\;\;\;\;2 \cdot \frac{\left({\left(\frac{1}{{k}^{\left(\frac{2}{2}\right)} \cdot {t}^{1}}\right)}^{1} \cdot \left(\cos k \cdot {\ell}^{2}\right)\right) \cdot {\left(\frac{1}{{k}^{\left(\frac{2}{2}\right)}}\right)}^{1}}{{\left(\sin k\right)}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{2}{\left(\left(\frac{1}{\ell} \cdot \frac{{t}^{3}}{\ell}\right) \cdot \sin k\right) \cdot \tan k}}{{\left(\frac{k}{t}\right)}^{2}}\\
\end{array}double f(double t, double l, double k) {
double r110527 = 2.0;
double r110528 = t;
double r110529 = 3.0;
double r110530 = pow(r110528, r110529);
double r110531 = l;
double r110532 = r110531 * r110531;
double r110533 = r110530 / r110532;
double r110534 = k;
double r110535 = sin(r110534);
double r110536 = r110533 * r110535;
double r110537 = tan(r110534);
double r110538 = r110536 * r110537;
double r110539 = 1.0;
double r110540 = r110534 / r110528;
double r110541 = pow(r110540, r110527);
double r110542 = r110539 + r110541;
double r110543 = r110542 - r110539;
double r110544 = r110538 * r110543;
double r110545 = r110527 / r110544;
return r110545;
}
double f(double t, double l, double k) {
double r110546 = l;
double r110547 = -7.341974747858959e+153;
bool r110548 = r110546 <= r110547;
double r110549 = 2.0;
double r110550 = t;
double r110551 = cbrt(r110550);
double r110552 = r110551 * r110551;
double r110553 = 3.0;
double r110554 = pow(r110552, r110553);
double r110555 = r110554 / r110546;
double r110556 = pow(r110551, r110553);
double r110557 = r110556 / r110546;
double r110558 = k;
double r110559 = sin(r110558);
double r110560 = r110557 * r110559;
double r110561 = r110555 * r110560;
double r110562 = tan(r110558);
double r110563 = r110561 * r110562;
double r110564 = r110549 / r110563;
double r110565 = r110558 / r110550;
double r110566 = pow(r110565, r110549);
double r110567 = r110564 / r110566;
double r110568 = -7.730538530348133e-163;
bool r110569 = r110546 <= r110568;
double r110570 = 1.0;
double r110571 = 2.0;
double r110572 = r110549 / r110571;
double r110573 = pow(r110558, r110572);
double r110574 = 1.0;
double r110575 = pow(r110550, r110574);
double r110576 = r110573 * r110575;
double r110577 = r110570 / r110576;
double r110578 = cbrt(r110577);
double r110579 = r110578 * r110578;
double r110580 = r110579 * r110578;
double r110581 = pow(r110580, r110574);
double r110582 = cos(r110558);
double r110583 = pow(r110546, r110571);
double r110584 = r110582 * r110583;
double r110585 = pow(r110559, r110571);
double r110586 = r110584 / r110585;
double r110587 = r110581 * r110586;
double r110588 = r110570 / r110573;
double r110589 = pow(r110588, r110574);
double r110590 = r110587 * r110589;
double r110591 = r110590 * r110549;
double r110592 = 1.0269445451976019e-127;
bool r110593 = r110546 <= r110592;
double r110594 = r110573 * r110576;
double r110595 = r110570 / r110594;
double r110596 = pow(r110595, r110574);
double r110597 = r110546 / r110558;
double r110598 = -0.16666666666666666;
double r110599 = r110583 * r110598;
double r110600 = fma(r110597, r110597, r110599);
double r110601 = r110596 * r110600;
double r110602 = r110549 * r110601;
double r110603 = 4.1624864010972877e+148;
bool r110604 = r110546 <= r110603;
double r110605 = pow(r110577, r110574);
double r110606 = r110605 * r110584;
double r110607 = r110606 * r110589;
double r110608 = r110607 / r110585;
double r110609 = r110549 * r110608;
double r110610 = r110570 / r110546;
double r110611 = pow(r110550, r110553);
double r110612 = r110611 / r110546;
double r110613 = r110610 * r110612;
double r110614 = r110613 * r110559;
double r110615 = r110614 * r110562;
double r110616 = r110549 / r110615;
double r110617 = r110616 / r110566;
double r110618 = r110604 ? r110609 : r110617;
double r110619 = r110593 ? r110602 : r110618;
double r110620 = r110569 ? r110591 : r110619;
double r110621 = r110548 ? r110567 : r110620;
return r110621;
}



Bits error versus t



Bits error versus l



Bits error versus k
if l < -7.341974747858959e+153Initial program 64.0
Simplified64.0
rmApplied add-cube-cbrt64.0
Applied unpow-prod-down64.0
Applied times-frac50.5
Applied associate-*l*50.5
if -7.341974747858959e+153 < l < -7.730538530348133e-163Initial program 44.4
Simplified35.5
Taylor expanded around inf 10.3
rmApplied sqr-pow10.3
Applied associate-*l*6.6
rmApplied add-sqr-sqrt6.6
Applied times-frac6.4
Applied unpow-prod-down6.4
Applied associate-*l*3.8
Simplified3.8
rmApplied add-cube-cbrt4.1
if -7.730538530348133e-163 < l < 1.0269445451976019e-127Initial program 46.1
Simplified37.2
Taylor expanded around inf 18.1
rmApplied sqr-pow18.1
Applied associate-*l*18.1
Taylor expanded around 0 18.7
Simplified9.9
if 1.0269445451976019e-127 < l < 4.1624864010972877e+148Initial program 44.5
Simplified35.2
Taylor expanded around inf 11.8
rmApplied sqr-pow11.8
Applied associate-*l*7.0
rmApplied add-sqr-sqrt7.0
Applied times-frac6.8
Applied unpow-prod-down6.8
Applied associate-*l*3.5
Simplified3.5
rmApplied associate-*r/4.0
Applied associate-*r/4.0
Simplified4.0
if 4.1624864010972877e+148 < l Initial program 63.6
Simplified63.3
rmApplied *-un-lft-identity63.3
Applied unpow-prod-down63.3
Applied times-frac52.0
Simplified52.0
Final simplification13.5
herbie shell --seed 2019325 +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))))