\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 \cdot \ell \le 36341823884774118312709128287999229952:\\
\;\;\;\;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 \left(\left(\ell \cdot \frac{\cos k}{\sin k}\right) \cdot \frac{\ell}{\sin k}\right)\right)\\
\mathbf{elif}\;\ell \cdot \ell \le 2.702815358468802609888516667751806875166 \cdot 10^{307}:\\
\;\;\;\;\left({\left(\frac{1}{{k}^{\left(\frac{2}{2}\right)}}\right)}^{1} \cdot \left(\left(\frac{\cos k}{\sin k} \cdot \frac{{\ell}^{2}}{\sin k}\right) \cdot {\left(\frac{\frac{1}{{k}^{\left(\frac{2}{2}\right)}}}{{t}^{1}}\right)}^{1}\right)\right) \cdot 2\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{2}{\left(\left(\frac{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{3}}{\ell} \cdot \frac{{\left(\sqrt[3]{t}\right)}^{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 r80632 = 2.0;
double r80633 = t;
double r80634 = 3.0;
double r80635 = pow(r80633, r80634);
double r80636 = l;
double r80637 = r80636 * r80636;
double r80638 = r80635 / r80637;
double r80639 = k;
double r80640 = sin(r80639);
double r80641 = r80638 * r80640;
double r80642 = tan(r80639);
double r80643 = r80641 * r80642;
double r80644 = 1.0;
double r80645 = r80639 / r80633;
double r80646 = pow(r80645, r80632);
double r80647 = r80644 + r80646;
double r80648 = r80647 - r80644;
double r80649 = r80643 * r80648;
double r80650 = r80632 / r80649;
return r80650;
}
double f(double t, double l, double k) {
double r80651 = l;
double r80652 = r80651 * r80651;
double r80653 = 3.634182388477412e+37;
bool r80654 = r80652 <= r80653;
double r80655 = 2.0;
double r80656 = 1.0;
double r80657 = k;
double r80658 = 2.0;
double r80659 = r80655 / r80658;
double r80660 = pow(r80657, r80659);
double r80661 = t;
double r80662 = 1.0;
double r80663 = pow(r80661, r80662);
double r80664 = r80660 * r80663;
double r80665 = r80660 * r80664;
double r80666 = r80656 / r80665;
double r80667 = pow(r80666, r80662);
double r80668 = cos(r80657);
double r80669 = sin(r80657);
double r80670 = r80668 / r80669;
double r80671 = r80651 * r80670;
double r80672 = r80651 / r80669;
double r80673 = r80671 * r80672;
double r80674 = r80667 * r80673;
double r80675 = r80655 * r80674;
double r80676 = 2.7028153584688026e+307;
bool r80677 = r80652 <= r80676;
double r80678 = r80656 / r80660;
double r80679 = pow(r80678, r80662);
double r80680 = pow(r80651, r80658);
double r80681 = r80680 / r80669;
double r80682 = r80670 * r80681;
double r80683 = r80678 / r80663;
double r80684 = pow(r80683, r80662);
double r80685 = r80682 * r80684;
double r80686 = r80679 * r80685;
double r80687 = r80686 * r80655;
double r80688 = cbrt(r80661);
double r80689 = r80688 * r80688;
double r80690 = 3.0;
double r80691 = pow(r80689, r80690);
double r80692 = r80691 / r80651;
double r80693 = pow(r80688, r80690);
double r80694 = r80693 / r80651;
double r80695 = r80692 * r80694;
double r80696 = r80695 * r80669;
double r80697 = tan(r80657);
double r80698 = r80696 * r80697;
double r80699 = r80655 / r80698;
double r80700 = r80657 / r80661;
double r80701 = pow(r80700, r80655);
double r80702 = r80699 / r80701;
double r80703 = r80677 ? r80687 : r80702;
double r80704 = r80654 ? r80675 : r80703;
return r80704;
}



Bits error versus t



Bits error versus l



Bits error versus k
Results
if (* l l) < 3.634182388477412e+37Initial program 44.9
Simplified35.4
Taylor expanded around inf 12.4
rmApplied sqr-pow12.4
Applied associate-*l*11.2
rmApplied add-sqr-sqrt37.3
Applied unpow-prod-down37.3
Applied times-frac37.1
Simplified37.1
Simplified10.8
rmApplied *-un-lft-identity10.8
Applied sqr-pow10.8
Applied times-frac8.1
Applied associate-*r*6.1
Simplified6.1
if 3.634182388477412e+37 < (* l l) < 2.7028153584688026e+307Initial program 48.2
Simplified41.1
Taylor expanded around inf 21.6
rmApplied sqr-pow21.6
Applied associate-*l*15.0
rmApplied add-sqr-sqrt39.2
Applied unpow-prod-down39.2
Applied times-frac39.2
Simplified39.1
Simplified15.0
rmApplied add-cube-cbrt15.0
Applied times-frac14.3
Applied unpow-prod-down14.3
Applied associate-*l*7.5
Simplified7.3
if 2.7028153584688026e+307 < (* l l) Initial program 63.9
Simplified63.9
rmApplied add-cube-cbrt63.9
Applied unpow-prod-down63.9
Applied times-frac48.9
Final simplification12.8
herbie shell --seed 2019212 +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))))