\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 r4626063 = 2.0;
double r4626064 = t;
double r4626065 = 3.0;
double r4626066 = pow(r4626064, r4626065);
double r4626067 = l;
double r4626068 = r4626067 * r4626067;
double r4626069 = r4626066 / r4626068;
double r4626070 = k;
double r4626071 = sin(r4626070);
double r4626072 = r4626069 * r4626071;
double r4626073 = tan(r4626070);
double r4626074 = r4626072 * r4626073;
double r4626075 = 1.0;
double r4626076 = r4626070 / r4626064;
double r4626077 = pow(r4626076, r4626063);
double r4626078 = r4626075 + r4626077;
double r4626079 = r4626078 + r4626075;
double r4626080 = r4626074 * r4626079;
double r4626081 = r4626063 / r4626080;
return r4626081;
}
double f(double t, double l, double k) {
double r4626082 = t;
double r4626083 = -2.924438671962201e+100;
bool r4626084 = r4626082 <= r4626083;
double r4626085 = 2.0;
double r4626086 = k;
double r4626087 = tan(r4626086);
double r4626088 = sin(r4626086);
double r4626089 = 3.0;
double r4626090 = 0.3333333333333333;
double r4626091 = r4626089 * r4626090;
double r4626092 = pow(r4626082, r4626091);
double r4626093 = l;
double r4626094 = r4626092 / r4626093;
double r4626095 = r4626088 * r4626094;
double r4626096 = cbrt(r4626082);
double r4626097 = pow(r4626096, r4626089);
double r4626098 = cbrt(r4626093);
double r4626099 = r4626097 / r4626098;
double r4626100 = r4626095 * r4626099;
double r4626101 = r4626099 / r4626098;
double r4626102 = r4626100 * r4626101;
double r4626103 = r4626087 * r4626102;
double r4626104 = 1.0;
double r4626105 = r4626086 / r4626082;
double r4626106 = pow(r4626105, r4626085);
double r4626107 = r4626104 + r4626106;
double r4626108 = r4626104 + r4626107;
double r4626109 = r4626103 * r4626108;
double r4626110 = r4626085 / r4626109;
double r4626111 = -8.40729606863466e-172;
bool r4626112 = r4626082 <= r4626111;
double r4626113 = cos(r4626086);
double r4626114 = r4626088 * r4626088;
double r4626115 = r4626113 / r4626114;
double r4626116 = r4626093 / r4626086;
double r4626117 = r4626116 * r4626116;
double r4626118 = r4626115 * r4626117;
double r4626119 = r4626082 / r4626118;
double r4626120 = r4626082 * r4626082;
double r4626121 = r4626082 * r4626120;
double r4626122 = r4626121 / r4626113;
double r4626123 = r4626088 / r4626093;
double r4626124 = r4626123 * r4626123;
double r4626125 = r4626122 * r4626124;
double r4626126 = r4626085 * r4626125;
double r4626127 = r4626119 + r4626126;
double r4626128 = -r4626127;
double r4626129 = 1.0;
double r4626130 = -1.0;
double r4626131 = pow(r4626130, r4626089);
double r4626132 = r4626129 / r4626131;
double r4626133 = pow(r4626132, r4626104);
double r4626134 = r4626128 * r4626133;
double r4626135 = r4626085 / r4626134;
double r4626136 = 2.2377470097235398e-299;
bool r4626137 = r4626082 <= r4626136;
double r4626138 = r4626120 / r4626093;
double r4626139 = r4626082 / r4626093;
double r4626140 = r4626138 * r4626139;
double r4626141 = r4626114 / r4626113;
double r4626142 = r4626140 * r4626141;
double r4626143 = r4626142 * r4626085;
double r4626144 = r4626086 * r4626088;
double r4626145 = r4626144 * r4626144;
double r4626146 = r4626145 / r4626093;
double r4626147 = r4626146 * r4626139;
double r4626148 = r4626147 / r4626113;
double r4626149 = r4626143 + r4626148;
double r4626150 = -r4626133;
double r4626151 = r4626149 * r4626150;
double r4626152 = r4626085 / r4626151;
double r4626153 = 6.134741677118166e-155;
bool r4626154 = r4626082 <= r4626153;
double r4626155 = 9.881784241679104e-76;
bool r4626156 = r4626082 <= r4626155;
double r4626157 = r4626156 ? r4626152 : r4626110;
double r4626158 = r4626154 ? r4626135 : r4626157;
double r4626159 = r4626137 ? r4626152 : r4626158;
double r4626160 = r4626112 ? r4626135 : r4626159;
double r4626161 = r4626084 ? r4626110 : r4626160;
return r4626161;
}



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))))