\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 -2.924438671962201165807650169023664983903 \cdot 10^{100}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \left(\left(\left(\sin k \cdot \frac{{t}^{\left(3 \cdot \frac{1}{3}\right)}}{\ell}\right) \cdot \frac{{\left(\sqrt[3]{t}\right)}^{3}}{\sqrt[3]{\ell}}\right) \cdot \frac{\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\sqrt[3]{\ell}}}{\sqrt[3]{\ell}}\right)\right) \cdot \left(1 + \left(1 + {\left(\frac{k}{t}\right)}^{2}\right)\right)}\\
\mathbf{elif}\;t \le -8.407296068634659477299405158316321222135 \cdot 10^{-172}:\\
\;\;\;\;\frac{2}{\left(-\left(\frac{t}{\frac{\cos k}{\sin k \cdot \sin k} \cdot \left(\frac{\ell}{k} \cdot \frac{\ell}{k}\right)} + 2 \cdot \left(\frac{t \cdot \left(t \cdot t\right)}{\cos k} \cdot \left(\frac{\sin k}{\ell} \cdot \frac{\sin k}{\ell}\right)\right)\right)\right) \cdot {\left(\frac{1}{{-1}^{3}}\right)}^{1}}\\
\mathbf{elif}\;t \le 2.237747009723539760634346194506873560256 \cdot 10^{-299}:\\
\;\;\;\;\frac{2}{\left(\left(\left(\frac{t \cdot t}{\ell} \cdot \frac{t}{\ell}\right) \cdot \frac{\sin k \cdot \sin k}{\cos k}\right) \cdot 2 + \frac{\frac{\left(k \cdot \sin k\right) \cdot \left(k \cdot \sin k\right)}{\ell} \cdot \frac{t}{\ell}}{\cos k}\right) \cdot \left(-{\left(\frac{1}{{-1}^{3}}\right)}^{1}\right)}\\
\mathbf{elif}\;t \le 6.134741677118166181542171956762338450343 \cdot 10^{-155}:\\
\;\;\;\;\frac{2}{\left(-\left(\frac{t}{\frac{\cos k}{\sin k \cdot \sin k} \cdot \left(\frac{\ell}{k} \cdot \frac{\ell}{k}\right)} + 2 \cdot \left(\frac{t \cdot \left(t \cdot t\right)}{\cos k} \cdot \left(\frac{\sin k}{\ell} \cdot \frac{\sin k}{\ell}\right)\right)\right)\right) \cdot {\left(\frac{1}{{-1}^{3}}\right)}^{1}}\\
\mathbf{elif}\;t \le 9.88178424167910383711924983501808739871 \cdot 10^{-76}:\\
\;\;\;\;\frac{2}{\left(\left(\left(\frac{t \cdot t}{\ell} \cdot \frac{t}{\ell}\right) \cdot \frac{\sin k \cdot \sin k}{\cos k}\right) \cdot 2 + \frac{\frac{\left(k \cdot \sin k\right) \cdot \left(k \cdot \sin k\right)}{\ell} \cdot \frac{t}{\ell}}{\cos k}\right) \cdot \left(-{\left(\frac{1}{{-1}^{3}}\right)}^{1}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \left(\left(\left(\sin k \cdot \frac{{t}^{\left(3 \cdot \frac{1}{3}\right)}}{\ell}\right) \cdot \frac{{\left(\sqrt[3]{t}\right)}^{3}}{\sqrt[3]{\ell}}\right) \cdot \frac{\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\sqrt[3]{\ell}}}{\sqrt[3]{\ell}}\right)\right) \cdot \left(1 + \left(1 + {\left(\frac{k}{t}\right)}^{2}\right)\right)}\\
\end{array}double f(double t, double l, double k) {
double r4626053 = 2.0;
double r4626054 = t;
double r4626055 = 3.0;
double r4626056 = pow(r4626054, r4626055);
double r4626057 = l;
double r4626058 = r4626057 * r4626057;
double r4626059 = r4626056 / r4626058;
double r4626060 = k;
double r4626061 = sin(r4626060);
double r4626062 = r4626059 * r4626061;
double r4626063 = tan(r4626060);
double r4626064 = r4626062 * r4626063;
double r4626065 = 1.0;
double r4626066 = r4626060 / r4626054;
double r4626067 = pow(r4626066, r4626053);
double r4626068 = r4626065 + r4626067;
double r4626069 = r4626068 + r4626065;
double r4626070 = r4626064 * r4626069;
double r4626071 = r4626053 / r4626070;
return r4626071;
}
double f(double t, double l, double k) {
double r4626072 = t;
double r4626073 = -2.924438671962201e+100;
bool r4626074 = r4626072 <= r4626073;
double r4626075 = 2.0;
double r4626076 = k;
double r4626077 = tan(r4626076);
double r4626078 = sin(r4626076);
double r4626079 = 3.0;
double r4626080 = 0.3333333333333333;
double r4626081 = r4626079 * r4626080;
double r4626082 = pow(r4626072, r4626081);
double r4626083 = l;
double r4626084 = r4626082 / r4626083;
double r4626085 = r4626078 * r4626084;
double r4626086 = cbrt(r4626072);
double r4626087 = pow(r4626086, r4626079);
double r4626088 = cbrt(r4626083);
double r4626089 = r4626087 / r4626088;
double r4626090 = r4626085 * r4626089;
double r4626091 = r4626089 / r4626088;
double r4626092 = r4626090 * r4626091;
double r4626093 = r4626077 * r4626092;
double r4626094 = 1.0;
double r4626095 = r4626076 / r4626072;
double r4626096 = pow(r4626095, r4626075);
double r4626097 = r4626094 + r4626096;
double r4626098 = r4626094 + r4626097;
double r4626099 = r4626093 * r4626098;
double r4626100 = r4626075 / r4626099;
double r4626101 = -8.40729606863466e-172;
bool r4626102 = r4626072 <= r4626101;
double r4626103 = cos(r4626076);
double r4626104 = r4626078 * r4626078;
double r4626105 = r4626103 / r4626104;
double r4626106 = r4626083 / r4626076;
double r4626107 = r4626106 * r4626106;
double r4626108 = r4626105 * r4626107;
double r4626109 = r4626072 / r4626108;
double r4626110 = r4626072 * r4626072;
double r4626111 = r4626072 * r4626110;
double r4626112 = r4626111 / r4626103;
double r4626113 = r4626078 / r4626083;
double r4626114 = r4626113 * r4626113;
double r4626115 = r4626112 * r4626114;
double r4626116 = r4626075 * r4626115;
double r4626117 = r4626109 + r4626116;
double r4626118 = -r4626117;
double r4626119 = 1.0;
double r4626120 = -1.0;
double r4626121 = pow(r4626120, r4626079);
double r4626122 = r4626119 / r4626121;
double r4626123 = pow(r4626122, r4626094);
double r4626124 = r4626118 * r4626123;
double r4626125 = r4626075 / r4626124;
double r4626126 = 2.2377470097235398e-299;
bool r4626127 = r4626072 <= r4626126;
double r4626128 = r4626110 / r4626083;
double r4626129 = r4626072 / r4626083;
double r4626130 = r4626128 * r4626129;
double r4626131 = r4626104 / r4626103;
double r4626132 = r4626130 * r4626131;
double r4626133 = r4626132 * r4626075;
double r4626134 = r4626076 * r4626078;
double r4626135 = r4626134 * r4626134;
double r4626136 = r4626135 / r4626083;
double r4626137 = r4626136 * r4626129;
double r4626138 = r4626137 / r4626103;
double r4626139 = r4626133 + r4626138;
double r4626140 = -r4626123;
double r4626141 = r4626139 * r4626140;
double r4626142 = r4626075 / r4626141;
double r4626143 = 6.134741677118166e-155;
bool r4626144 = r4626072 <= r4626143;
double r4626145 = 9.881784241679104e-76;
bool r4626146 = r4626072 <= r4626145;
double r4626147 = r4626146 ? r4626142 : r4626100;
double r4626148 = r4626144 ? r4626125 : r4626147;
double r4626149 = r4626127 ? r4626142 : r4626148;
double r4626150 = r4626102 ? r4626125 : r4626149;
double r4626151 = r4626074 ? r4626100 : r4626150;
return r4626151;
}



Bits error versus t



Bits error versus l



Bits error versus k
Results
if t < -2.924438671962201e+100 or 9.881784241679104e-76 < t Initial program 23.8
rmApplied add-cube-cbrt23.9
Applied unpow-prod-down23.9
Applied times-frac16.8
Applied associate-*l*14.8
rmApplied add-cube-cbrt14.8
Applied unpow-prod-down14.8
Applied times-frac8.6
Simplified8.6
rmApplied associate-*l*7.4
rmApplied pow1/330.4
Applied pow-pow7.2
if -2.924438671962201e+100 < t < -8.40729606863466e-172 or 2.2377470097235398e-299 < t < 6.134741677118166e-155Initial program 40.3
rmApplied add-cube-cbrt40.6
Applied unpow-prod-down40.6
Applied times-frac33.7
Applied associate-*l*31.7
rmApplied add-cube-cbrt31.7
Applied unpow-prod-down31.7
Applied times-frac27.8
Simplified27.8
rmApplied associate-*l*27.8
Taylor expanded around -inf 31.0
Simplified14.5
if -8.40729606863466e-172 < t < 2.2377470097235398e-299 or 6.134741677118166e-155 < t < 9.881784241679104e-76Initial program 58.5
rmApplied add-cube-cbrt58.5
Applied unpow-prod-down58.5
Applied times-frac50.7
Applied associate-*l*50.6
rmApplied add-cube-cbrt50.6
Applied unpow-prod-down50.6
Applied times-frac45.1
Simplified45.1
Taylor expanded around -inf 38.0
Simplified22.1
Final simplification11.2
herbie shell --seed 2019172 +o rules:numerics
(FPCore (t l k)
:name "Toniolo and Linder, Equation (10+)"
(/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (+ (+ 1.0 (pow (/ k t) 2.0)) 1.0))))