\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 5.324378565018582 \cdot 10^{+304}:\\
\;\;\;\;\frac{2}{{\left({\left(\sqrt[3]{k} \cdot \sqrt[3]{k}\right)}^{2}\right)}^{1} \cdot \left(\left(\left({\left({t}^{1}\right)}^{1} \cdot \frac{\sin k}{\cos k}\right) \cdot \frac{\sin k}{\ell \cdot \ell}\right) \cdot {\left({\left(\sqrt[3]{k}\right)}^{2}\right)}^{1}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\left(\frac{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{3}}{\ell} \cdot \left(\sin k \cdot \frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell}\right)\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) 5.324378565018582e+304)
(/
2.0
(*
(pow (pow (* (cbrt k) (cbrt k)) 2.0) 1.0)
(*
(* (* (pow (pow t 1.0) 1.0) (/ (sin k) (cos k))) (/ (sin k) (* l l)))
(pow (pow (cbrt k) 2.0) 1.0))))
(/
2.0
(*
(*
(*
(/ (pow (* (cbrt t) (cbrt t)) 3.0) l)
(* (sin k) (/ (pow (cbrt t) 3.0) 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)) <= 5.324378565018582e+304)) {
tmp = (2.0 / ((double) (((double) pow(((double) pow(((double) (((double) cbrt(k)) * ((double) cbrt(k)))), 2.0)), 1.0)) * ((double) (((double) (((double) (((double) pow(((double) pow(t, 1.0)), 1.0)) * (((double) sin(k)) / ((double) cos(k))))) * (((double) sin(k)) / ((double) (l * l))))) * ((double) pow(((double) pow(((double) cbrt(k)), 2.0)), 1.0)))))));
} else {
tmp = (2.0 / ((double) (((double) (((double) ((((double) pow(((double) (((double) cbrt(t)) * ((double) cbrt(t)))), 3.0)) / l) * ((double) (((double) sin(k)) * (((double) pow(((double) cbrt(t)), 3.0)) / 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) < 5.3243785650185817e304Initial program 44.8
Simplified35.8
Taylor expanded around inf 14.0
Simplified14.0
rmApplied unpow-prod-down_binary6414.0
Applied associate-*l*_binary6414.2
Simplified14.2
rmApplied add-cube-cbrt_binary6414.5
Applied unpow-prod-down_binary6414.5
Applied unpow-prod-down_binary6414.5
Applied associate-*l*_binary6412.6
Simplified12.6
rmApplied unpow2_binary6412.6
Applied times-frac_binary6412.3
Applied associate-*r*_binary6412.2
if 5.3243785650185817e304 < (*.f64 l l) Initial program 63.8
Simplified63.7
rmApplied add-cube-cbrt_binary6463.7
Applied unpow-prod-down_binary6463.7
Applied times-frac_binary6448.7
Applied associate-*l*_binary6448.7
Simplified48.7
Final simplification18.0
herbie shell --seed 2020205
(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))))