\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 5.830478013546999449775592818541939019798 \cdot 10^{295}:\\
\;\;\;\;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(\frac{\cos k}{\left|\sin k\right|} \cdot \ell\right) \cdot \frac{{\ell}^{\left(\frac{2}{2}\right)}}{\left|\sin k\right|}\right)\right)\\
\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 r85052 = 2.0;
double r85053 = t;
double r85054 = 3.0;
double r85055 = pow(r85053, r85054);
double r85056 = l;
double r85057 = r85056 * r85056;
double r85058 = r85055 / r85057;
double r85059 = k;
double r85060 = sin(r85059);
double r85061 = r85058 * r85060;
double r85062 = tan(r85059);
double r85063 = r85061 * r85062;
double r85064 = 1.0;
double r85065 = r85059 / r85053;
double r85066 = pow(r85065, r85052);
double r85067 = r85064 + r85066;
double r85068 = r85067 - r85064;
double r85069 = r85063 * r85068;
double r85070 = r85052 / r85069;
return r85070;
}
double f(double t, double l, double k) {
double r85071 = l;
double r85072 = r85071 * r85071;
double r85073 = 5.830478013546999e+295;
bool r85074 = r85072 <= r85073;
double r85075 = 2.0;
double r85076 = 1.0;
double r85077 = k;
double r85078 = 2.0;
double r85079 = r85075 / r85078;
double r85080 = pow(r85077, r85079);
double r85081 = t;
double r85082 = 1.0;
double r85083 = pow(r85081, r85082);
double r85084 = r85080 * r85083;
double r85085 = r85080 * r85084;
double r85086 = r85076 / r85085;
double r85087 = pow(r85086, r85082);
double r85088 = cos(r85077);
double r85089 = sin(r85077);
double r85090 = fabs(r85089);
double r85091 = r85088 / r85090;
double r85092 = r85091 * r85071;
double r85093 = r85078 / r85078;
double r85094 = pow(r85071, r85093);
double r85095 = r85094 / r85090;
double r85096 = r85092 * r85095;
double r85097 = r85087 * r85096;
double r85098 = r85075 * r85097;
double r85099 = cbrt(r85081);
double r85100 = r85099 * r85099;
double r85101 = 3.0;
double r85102 = pow(r85100, r85101);
double r85103 = r85102 / r85071;
double r85104 = pow(r85099, r85101);
double r85105 = r85104 / r85071;
double r85106 = r85103 * r85105;
double r85107 = r85106 * r85089;
double r85108 = tan(r85077);
double r85109 = r85107 * r85108;
double r85110 = r85075 / r85109;
double r85111 = r85077 / r85081;
double r85112 = pow(r85111, r85075);
double r85113 = r85110 / r85112;
double r85114 = r85074 ? r85098 : r85113;
return r85114;
}



Bits error versus t



Bits error versus l



Bits error versus k
Results
if (* l l) < 5.830478013546999e+295Initial program 45.2
Simplified36.0
Taylor expanded around inf 14.1
rmApplied sqr-pow14.1
Applied associate-*l*11.7
rmApplied add-sqr-sqrt11.7
Applied times-frac11.7
Simplified11.7
Simplified11.4
rmApplied *-un-lft-identity11.4
Applied sqr-pow11.4
Applied times-frac9.4
Applied associate-*r*7.6
Simplified7.6
if 5.830478013546999e+295 < (* l l) Initial program 63.4
Simplified63.2
rmApplied add-cube-cbrt63.2
Applied unpow-prod-down63.2
Applied times-frac49.9
Final simplification14.2
herbie shell --seed 2019351 +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))))