\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}\;k \le -4.041273932463307 \cdot 10^{+247}:\\
\;\;\;\;\frac{\frac{\frac{-2}{\frac{k}{t} \cdot \left(t \cdot \left(\frac{t}{\ell} \cdot \left(\frac{t}{\ell} \cdot \frac{k}{t}\right)\right)\right)}}{-\sin k}}{\tan k}\\
\mathbf{elif}\;k \le -2.3396485923337978 \cdot 10^{+231}:\\
\;\;\;\;\frac{\frac{-2}{t \cdot \left(\left(t \cdot \left(t \cdot k\right)\right) \cdot k\right)}}{-\sin k} \cdot \frac{\left(\ell \cdot \left(\ell \cdot t\right)\right) \cdot t}{\tan k}\\
\mathbf{elif}\;k \le -3.375675962257107 \cdot 10^{+164}:\\
\;\;\;\;\frac{\frac{-2}{\frac{\frac{\frac{\left(t \cdot k\right) \cdot \left(t \cdot k\right)}{t}}{\ell} \cdot t}{t}}}{-\sin k} \cdot \frac{\ell}{\tan k}\\
\mathbf{elif}\;k \le -1.032730037883888 \cdot 10^{-155}:\\
\;\;\;\;\frac{\ell}{\tan k} \cdot \frac{\frac{-2}{t \cdot \frac{k \cdot k}{\ell}}}{-\sin k}\\
\mathbf{elif}\;k \le 9.656245993958174 \cdot 10^{-126}:\\
\;\;\;\;\frac{\frac{-2}{t \cdot \frac{\frac{\frac{\left(t \cdot k\right) \cdot \left(t \cdot k\right)}{t}}{\ell}}{t}}}{-\sin k} \cdot \frac{\ell}{\tan k}\\
\mathbf{elif}\;k \le 1.345868103112779 \cdot 10^{+154}:\\
\;\;\;\;\frac{\ell}{\tan k} \cdot \frac{\frac{-2}{t \cdot \frac{k \cdot k}{\ell}}}{-\sin k}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{-2}{\left(\left(\frac{t}{\ell} \cdot \frac{k}{\ell}\right) \cdot \frac{k}{t}\right) \cdot t}}{\left(-\sin k\right) \cdot \tan k}\\
\end{array}double f(double t, double l, double k) {
double r1829068 = 2.0;
double r1829069 = t;
double r1829070 = 3.0;
double r1829071 = pow(r1829069, r1829070);
double r1829072 = l;
double r1829073 = r1829072 * r1829072;
double r1829074 = r1829071 / r1829073;
double r1829075 = k;
double r1829076 = sin(r1829075);
double r1829077 = r1829074 * r1829076;
double r1829078 = tan(r1829075);
double r1829079 = r1829077 * r1829078;
double r1829080 = 1.0;
double r1829081 = r1829075 / r1829069;
double r1829082 = pow(r1829081, r1829068);
double r1829083 = r1829080 + r1829082;
double r1829084 = r1829083 - r1829080;
double r1829085 = r1829079 * r1829084;
double r1829086 = r1829068 / r1829085;
return r1829086;
}
double f(double t, double l, double k) {
double r1829087 = k;
double r1829088 = -4.041273932463307e+247;
bool r1829089 = r1829087 <= r1829088;
double r1829090 = -2.0;
double r1829091 = t;
double r1829092 = r1829087 / r1829091;
double r1829093 = l;
double r1829094 = r1829091 / r1829093;
double r1829095 = r1829094 * r1829092;
double r1829096 = r1829094 * r1829095;
double r1829097 = r1829091 * r1829096;
double r1829098 = r1829092 * r1829097;
double r1829099 = r1829090 / r1829098;
double r1829100 = sin(r1829087);
double r1829101 = -r1829100;
double r1829102 = r1829099 / r1829101;
double r1829103 = tan(r1829087);
double r1829104 = r1829102 / r1829103;
double r1829105 = -2.3396485923337978e+231;
bool r1829106 = r1829087 <= r1829105;
double r1829107 = r1829091 * r1829087;
double r1829108 = r1829091 * r1829107;
double r1829109 = r1829108 * r1829087;
double r1829110 = r1829091 * r1829109;
double r1829111 = r1829090 / r1829110;
double r1829112 = r1829111 / r1829101;
double r1829113 = r1829093 * r1829091;
double r1829114 = r1829093 * r1829113;
double r1829115 = r1829114 * r1829091;
double r1829116 = r1829115 / r1829103;
double r1829117 = r1829112 * r1829116;
double r1829118 = -3.375675962257107e+164;
bool r1829119 = r1829087 <= r1829118;
double r1829120 = r1829107 * r1829107;
double r1829121 = r1829120 / r1829091;
double r1829122 = r1829121 / r1829093;
double r1829123 = r1829122 * r1829091;
double r1829124 = r1829123 / r1829091;
double r1829125 = r1829090 / r1829124;
double r1829126 = r1829125 / r1829101;
double r1829127 = r1829093 / r1829103;
double r1829128 = r1829126 * r1829127;
double r1829129 = -1.032730037883888e-155;
bool r1829130 = r1829087 <= r1829129;
double r1829131 = r1829087 * r1829087;
double r1829132 = r1829131 / r1829093;
double r1829133 = r1829091 * r1829132;
double r1829134 = r1829090 / r1829133;
double r1829135 = r1829134 / r1829101;
double r1829136 = r1829127 * r1829135;
double r1829137 = 9.656245993958174e-126;
bool r1829138 = r1829087 <= r1829137;
double r1829139 = r1829122 / r1829091;
double r1829140 = r1829091 * r1829139;
double r1829141 = r1829090 / r1829140;
double r1829142 = r1829141 / r1829101;
double r1829143 = r1829142 * r1829127;
double r1829144 = 1.345868103112779e+154;
bool r1829145 = r1829087 <= r1829144;
double r1829146 = r1829087 / r1829093;
double r1829147 = r1829094 * r1829146;
double r1829148 = r1829147 * r1829092;
double r1829149 = r1829148 * r1829091;
double r1829150 = r1829090 / r1829149;
double r1829151 = r1829101 * r1829103;
double r1829152 = r1829150 / r1829151;
double r1829153 = r1829145 ? r1829136 : r1829152;
double r1829154 = r1829138 ? r1829143 : r1829153;
double r1829155 = r1829130 ? r1829136 : r1829154;
double r1829156 = r1829119 ? r1829128 : r1829155;
double r1829157 = r1829106 ? r1829117 : r1829156;
double r1829158 = r1829089 ? r1829104 : r1829157;
return r1829158;
}



Bits error versus t



Bits error versus l



Bits error versus k
Results
if k < -4.041273932463307e+247Initial program 34.5
Simplified17.7
rmApplied frac-2neg17.7
Simplified12.4
rmApplied distribute-lft-neg-in12.4
Applied associate-/r*12.3
if -4.041273932463307e+247 < k < -2.3396485923337978e+231Initial program 39.4
Simplified20.1
rmApplied frac-2neg20.1
Simplified16.4
rmApplied associate-*r*16.1
rmApplied distribute-lft-neg-in16.1
Applied frac-times24.9
Applied frac-times30.1
Applied frac-times27.6
Applied associate-*l/26.8
Applied associate-/r/26.9
Applied times-frac26.9
if -2.3396485923337978e+231 < k < -3.375675962257107e+164Initial program 42.2
Simplified16.9
rmApplied frac-2neg16.9
Simplified13.1
rmApplied associate-*r*12.4
rmApplied distribute-lft-neg-in12.4
Applied associate-*l/12.4
Applied associate-*l/12.4
Applied associate-*r/12.6
Applied associate-*l/18.5
Applied associate-/r/18.5
Applied times-frac18.5
rmApplied associate-*r/20.2
Applied associate-*l/20.2
Applied associate-*r/20.2
Applied associate-*l/20.4
Simplified14.0
if -3.375675962257107e+164 < k < -1.032730037883888e-155 or 9.656245993958174e-126 < k < 1.345868103112779e+154Initial program 51.9
Simplified21.6
rmApplied frac-2neg21.6
Simplified16.2
rmApplied associate-*r*16.4
rmApplied distribute-lft-neg-in16.4
Applied associate-*l/16.4
Applied associate-*l/16.4
Applied associate-*r/14.8
Applied associate-*l/10.0
Applied associate-/r/9.8
Applied times-frac9.6
Taylor expanded around 0 3.4
Simplified3.4
if -1.032730037883888e-155 < k < 9.656245993958174e-126Initial program 62.1
Simplified53.5
rmApplied frac-2neg53.5
Simplified54.7
rmApplied associate-*r*53.9
rmApplied distribute-lft-neg-in53.9
Applied associate-*l/53.9
Applied associate-*l/53.9
Applied associate-*r/52.3
Applied associate-*l/51.2
Applied associate-/r/51.2
Applied times-frac50.0
rmApplied associate-*r/50.0
Applied associate-*l/50.2
Applied associate-*r/50.2
Simplified15.5
if 1.345868103112779e+154 < k Initial program 38.4
Simplified18.3
rmApplied frac-2neg18.3
Simplified13.8
rmApplied associate-*r*13.5
Taylor expanded around 0 13.5
Final simplification8.3
herbie shell --seed 2019146 +o rules:numerics
(FPCore (t l k)
:name "Toniolo and Linder, Equation (10-)"
(/ 2 (* (* (* (/ (pow t 3) (* l l)) (sin k)) (tan k)) (- (+ 1 (pow (/ k t) 2)) 1))))