\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 \le -1.2094829756305392 \cdot 10^{-97}:\\
\;\;\;\;2 \cdot \frac{{\left(\frac{\sqrt{1}}{{k}^{\left(\frac{2}{2}\right)}}\right)}^{1} \cdot \left({\left(\frac{1}{{k}^{\left(\frac{2}{2}\right)} \cdot {t}^{1}}\right)}^{1} \cdot \left(\cos k \cdot {\ell}^{2}\right)\right)}{{\left(\sin k\right)}^{2}}\\
\mathbf{elif}\;\ell \le 1.53396116894158868 \cdot 10^{-171}:\\
\;\;\;\;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 \frac{\frac{\cos k}{\frac{\frac{{\left(\sqrt[3]{\sin k}\right)}^{4}}{\ell}}{\ell}}}{{\left(\sqrt[3]{\sin k}\right)}^{2}}\right)\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \left({\left(\frac{\sqrt{1}}{{k}^{\left(\frac{2}{2}\right)}}\right)}^{1} \cdot \left(\frac{{\left(\frac{1}{{k}^{\left(\frac{2}{2}\right)} \cdot {t}^{1}}\right)}^{1} \cdot \cos k}{\sin k} \cdot \frac{{\ell}^{2}}{{\left(\sin k\right)}^{1}}\right)\right)\\
\end{array}double code(double t, double l, double k) {
return (2.0 / ((((pow(t, 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + pow((k / t), 2.0)) - 1.0)));
}
double code(double t, double l, double k) {
double temp;
if ((l <= -1.2094829756305392e-97)) {
temp = (2.0 * ((pow((sqrt(1.0) / pow(k, (2.0 / 2.0))), 1.0) * (pow((1.0 / (pow(k, (2.0 / 2.0)) * pow(t, 1.0))), 1.0) * (cos(k) * pow(l, 2.0)))) / pow(sin(k), 2.0)));
} else {
double temp_1;
if ((l <= 1.5339611689415887e-171)) {
temp_1 = (2.0 * (pow((1.0 / (pow(k, (2.0 / 2.0)) * (pow(k, (2.0 / 2.0)) * pow(t, 1.0)))), 1.0) * ((cos(k) / ((pow(cbrt(sin(k)), 4.0) / l) / l)) / pow(cbrt(sin(k)), 2.0))));
} else {
temp_1 = (2.0 * (pow((sqrt(1.0) / pow(k, (2.0 / 2.0))), 1.0) * (((pow((1.0 / (pow(k, (2.0 / 2.0)) * pow(t, 1.0))), 1.0) * cos(k)) / sin(k)) * (pow(l, 2.0) / pow(sin(k), 1.0)))));
}
temp = temp_1;
}
return temp;
}



Bits error versus t



Bits error versus l



Bits error versus k
Results
if l < -1.2094829756305392e-97Initial program 50.2
Simplified43.4
Taylor expanded around inf 28.0
rmApplied sqr-pow28.0
Applied associate-*l*23.8
rmApplied add-sqr-sqrt23.8
Applied times-frac23.6
Applied unpow-prod-down23.6
Applied associate-*l*21.0
Simplified21.0
rmApplied associate-*r/20.7
Applied associate-*r/20.7
if -1.2094829756305392e-97 < l < 1.5339611689415887e-171Initial program 44.7
Simplified35.7
Taylor expanded around inf 16.4
rmApplied sqr-pow16.4
Applied associate-*l*16.3
rmApplied add-cube-cbrt16.4
Applied unpow-prod-down16.4
Applied associate-/r*16.0
Simplified11.5
if 1.5339611689415887e-171 < l Initial program 49.3
Simplified42.0
Taylor expanded around inf 22.6
rmApplied sqr-pow22.6
Applied associate-*l*19.7
rmApplied add-sqr-sqrt19.7
Applied times-frac19.5
Applied unpow-prod-down19.5
Applied associate-*l*17.2
Simplified17.2
rmApplied sqr-pow17.2
Applied times-frac16.7
Applied associate-*r*16.9
Simplified16.8
Final simplification15.9
herbie shell --seed 2020060 +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))))