\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 \leq 3.409768601945556 \cdot 10^{+288}:\\
\;\;\;\;2 \cdot \left({\left(\frac{1}{{k}^{\left(\frac{2}{2}\right)}}\right)}^{1} \cdot \left(\frac{\cos k}{\sin k} \cdot \left({\left(\frac{1}{{k}^{\left(\frac{2}{2}\right)} \cdot {t}^{1}}\right)}^{1} \cdot \frac{\ell \cdot \ell}{\sin k}\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\left(\sin k \cdot \frac{\frac{{t}^{3}}{\ell}}{\ell}\right) \cdot \tan k\right) \cdot {\left(\frac{k}{t}\right)}^{2}}\\
\end{array}(FPCore (t l k) :precision binary64 (/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (- (+ 1.0 (pow (/ k t) 2.0)) 1.0))))
(FPCore (t l k)
:precision binary64
(if (<= (* l l) 3.409768601945556e+288)
(*
2.0
(*
(pow (/ 1.0 (pow k (/ 2.0 2.0))) 1.0)
(*
(/ (cos k) (sin k))
(*
(pow (/ 1.0 (* (pow k (/ 2.0 2.0)) (pow t 1.0))) 1.0)
(/ (* l l) (sin k))))))
(/
2.0
(* (* (* (sin k) (/ (/ (pow t 3.0) l) l)) (tan k)) (pow (/ k t) 2.0)))))double code(double t, double l, double k) {
return (2.0 / ((double) (((double) (((double) ((((double) pow(t, 3.0)) / ((double) (l * l))) * ((double) sin(k)))) * ((double) tan(k)))) * ((double) (((double) (1.0 + ((double) pow((k / t), 2.0)))) - 1.0)))));
}
double code(double t, double l, double k) {
double tmp;
if ((((double) (l * l)) <= 3.409768601945556e+288)) {
tmp = ((double) (2.0 * ((double) (((double) pow((1.0 / ((double) pow(k, (2.0 / 2.0)))), 1.0)) * ((double) ((((double) cos(k)) / ((double) sin(k))) * ((double) (((double) pow((1.0 / ((double) (((double) pow(k, (2.0 / 2.0))) * ((double) pow(t, 1.0))))), 1.0)) * (((double) (l * l)) / ((double) sin(k)))))))))));
} else {
tmp = (2.0 / ((double) (((double) (((double) (((double) sin(k)) * ((((double) pow(t, 3.0)) / l) / l))) * ((double) tan(k)))) * ((double) pow((k / t), 2.0)))));
}
return tmp;
}



Bits error versus t



Bits error versus l



Bits error versus k
Results
if (*.f64 l l) < 3.40976860194555606e288Initial program 45.6
Simplified36.5
Taylor expanded around inf 13.8
Simplified13.8
rmApplied sqr-pow_binary6413.8
Applied associate-*l*_binary6411.5
Simplified11.5
rmApplied *-un-lft-identity_binary6411.5
Applied times-frac_binary6411.4
Applied unpow-prod-down_binary6411.4
Applied associate-*l*_binary649.8
Simplified9.8
rmApplied unpow2_binary649.8
Applied times-frac_binary649.5
Applied associate-*l*_binary649.4
Simplified9.4
if 3.40976860194555606e288 < (*.f64 l l) Initial program 63.1
Simplified62.7
rmApplied associate-/r*_binary6453.5
Final simplification16.9
herbie shell --seed 2020210
(FPCore (t l k)
:name "Toniolo and Linder, Equation (10-)"
:precision binary64
(/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (- (+ 1.0 (pow (/ k t) 2.0)) 1.0))))