\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 -2.015060177812317540999976002228685217361 \cdot 10^{153}:\\
\;\;\;\;\frac{\frac{2}{\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}}{{\left(\frac{k}{t}\right)}^{2}}\\
\mathbf{elif}\;\ell \le -4.884982399083621807526149312461350232617 \cdot 10^{-156}:\\
\;\;\;\;\left(\left(\frac{\cos k \cdot {\left(\frac{1}{{k}^{\left(\frac{2}{2}\right)} \cdot {t}^{1}}\right)}^{1}}{\left|\sin k\right|} \cdot \frac{{\ell}^{2}}{\sqrt{{\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 2.055528265138075354811144997647067500529 \cdot 10^{-157}:\\
\;\;\;\;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 5.307433067528376064772596510757992502501 \cdot 10^{135}:\\
\;\;\;\;2 \cdot \left(\left({\left(\frac{1}{{k}^{\left(\frac{2}{2}\right)} \cdot {t}^{1}}\right)}^{1} \cdot \frac{\frac{{\ell}^{2} \cdot \cos k}{\left|\sin k\right|}}{\sqrt{{\left(\sin k\right)}^{2}}}\right) \cdot {\left(\frac{1}{{k}^{\left(\frac{2}{2}\right)}}\right)}^{1}\right)\\
\mathbf{else}:\\
\;\;\;\;\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}}\\
\end{array}double f(double t, double l, double k) {
double r104626 = 2.0;
double r104627 = t;
double r104628 = 3.0;
double r104629 = pow(r104627, r104628);
double r104630 = l;
double r104631 = r104630 * r104630;
double r104632 = r104629 / r104631;
double r104633 = k;
double r104634 = sin(r104633);
double r104635 = r104632 * r104634;
double r104636 = tan(r104633);
double r104637 = r104635 * r104636;
double r104638 = 1.0;
double r104639 = r104633 / r104627;
double r104640 = pow(r104639, r104626);
double r104641 = r104638 + r104640;
double r104642 = r104641 - r104638;
double r104643 = r104637 * r104642;
double r104644 = r104626 / r104643;
return r104644;
}
double f(double t, double l, double k) {
double r104645 = l;
double r104646 = -2.0150601778123175e+153;
bool r104647 = r104645 <= r104646;
double r104648 = 2.0;
double r104649 = t;
double r104650 = 3.0;
double r104651 = 2.0;
double r104652 = r104650 / r104651;
double r104653 = pow(r104649, r104652);
double r104654 = r104653 / r104645;
double r104655 = k;
double r104656 = sin(r104655);
double r104657 = r104654 * r104656;
double r104658 = r104654 * r104657;
double r104659 = tan(r104655);
double r104660 = r104658 * r104659;
double r104661 = r104648 / r104660;
double r104662 = r104655 / r104649;
double r104663 = pow(r104662, r104648);
double r104664 = r104661 / r104663;
double r104665 = -4.884982399083622e-156;
bool r104666 = r104645 <= r104665;
double r104667 = cos(r104655);
double r104668 = 1.0;
double r104669 = r104648 / r104651;
double r104670 = pow(r104655, r104669);
double r104671 = 1.0;
double r104672 = pow(r104649, r104671);
double r104673 = r104670 * r104672;
double r104674 = r104668 / r104673;
double r104675 = pow(r104674, r104671);
double r104676 = r104667 * r104675;
double r104677 = fabs(r104656);
double r104678 = r104676 / r104677;
double r104679 = pow(r104645, r104651);
double r104680 = pow(r104656, r104651);
double r104681 = sqrt(r104680);
double r104682 = r104679 / r104681;
double r104683 = r104678 * r104682;
double r104684 = r104668 / r104670;
double r104685 = pow(r104684, r104671);
double r104686 = r104683 * r104685;
double r104687 = r104686 * r104648;
double r104688 = 2.0555282651380754e-157;
bool r104689 = r104645 <= r104688;
double r104690 = r104670 * r104673;
double r104691 = r104668 / r104690;
double r104692 = pow(r104691, r104671);
double r104693 = r104645 / r104655;
double r104694 = -0.16666666666666666;
double r104695 = r104679 * r104694;
double r104696 = fma(r104693, r104693, r104695);
double r104697 = r104692 * r104696;
double r104698 = r104648 * r104697;
double r104699 = 5.307433067528376e+135;
bool r104700 = r104645 <= r104699;
double r104701 = r104679 * r104667;
double r104702 = r104701 / r104677;
double r104703 = r104702 / r104681;
double r104704 = r104675 * r104703;
double r104705 = r104704 * r104685;
double r104706 = r104648 * r104705;
double r104707 = cbrt(r104649);
double r104708 = r104707 * r104707;
double r104709 = pow(r104708, r104650);
double r104710 = r104709 / r104645;
double r104711 = pow(r104707, r104650);
double r104712 = r104711 / r104645;
double r104713 = r104712 * r104656;
double r104714 = r104710 * r104713;
double r104715 = r104714 * r104659;
double r104716 = r104648 / r104715;
double r104717 = r104716 / r104663;
double r104718 = r104700 ? r104706 : r104717;
double r104719 = r104689 ? r104698 : r104718;
double r104720 = r104666 ? r104687 : r104719;
double r104721 = r104647 ? r104664 : r104720;
return r104721;
}



Bits error versus t



Bits error versus l



Bits error versus k
if l < -2.0150601778123175e+153Initial program 64.0
Simplified64.0
rmApplied sqr-pow64.0
Applied times-frac52.3
Applied associate-*l*52.3
if -2.0150601778123175e+153 < l < -4.884982399083622e-156Initial program 45.4
Simplified35.0
Taylor expanded around inf 11.2
rmApplied sqr-pow11.2
Applied associate-*l*7.1
rmApplied add-sqr-sqrt7.1
Applied times-frac6.8
Applied unpow-prod-down6.8
Applied associate-*l*3.7
Simplified3.7
rmApplied add-sqr-sqrt3.7
Applied times-frac3.7
Applied associate-*r*3.9
Simplified3.9
if -4.884982399083622e-156 < l < 2.0555282651380754e-157Initial program 46.5
Simplified37.8
Taylor expanded around inf 20.0
rmApplied sqr-pow20.0
Applied associate-*l*20.0
Taylor expanded around 0 20.1
Simplified10.5
if 2.0555282651380754e-157 < l < 5.307433067528376e+135Initial program 44.8
Simplified35.4
Taylor expanded around inf 11.1
rmApplied sqr-pow11.1
Applied associate-*l*7.1
rmApplied add-sqr-sqrt7.1
Applied times-frac6.8
Applied unpow-prod-down6.8
Applied associate-*l*3.6
Simplified3.6
rmApplied add-sqr-sqrt3.6
Applied associate-/r*3.6
Simplified3.6
if 5.307433067528376e+135 < l Initial program 62.4
Simplified61.8
rmApplied add-cube-cbrt61.8
Applied unpow-prod-down61.8
Applied times-frac47.0
Applied associate-*l*47.0
Final simplification13.4
herbie shell --seed 2019306 +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))))