\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 \leq -4.066080696884401 \cdot 10^{-80} \lor \neg \left(t \leq 3.693729904707694 \cdot 10^{-33}\right):\\
\;\;\;\;\frac{2}{\left({\left(\sqrt[3]{t}\right)}^{3} \cdot \frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell}\right) \cdot \left(\left(\frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell} \cdot \sin k\right) \cdot \left(\tan k \cdot \left(1 + \left(1 + {\left(\frac{k}{t}\right)}^{2}\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{{\left(\sin k\right)}^{2}}{\ell \cdot \ell} \cdot \left(\frac{t \cdot \left(k \cdot k\right)}{\cos k} + 2 \cdot \frac{{t}^{3}}{\cos k}\right)}\\
\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 (or (<= t -4.066080696884401e-80) (not (<= t 3.693729904707694e-33)))
(/
2.0
(*
(* (pow (cbrt t) 3.0) (/ (pow (cbrt t) 3.0) l))
(*
(* (/ (pow (cbrt t) 3.0) l) (sin k))
(* (tan k) (+ 1.0 (+ 1.0 (pow (/ k t) 2.0)))))))
(/
2.0
(*
(/ (pow (sin k) 2.0) (* l l))
(+ (/ (* t (* k k)) (cos k)) (* 2.0 (/ (pow t 3.0) (cos k))))))))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 (((t <= -4.066080696884401e-80) || !(t <= 3.693729904707694e-33))) {
tmp = (2.0 / ((double) (((double) (((double) pow(((double) cbrt(t)), 3.0)) * (((double) pow(((double) cbrt(t)), 3.0)) / l))) * ((double) (((double) ((((double) pow(((double) cbrt(t)), 3.0)) / l) * ((double) sin(k)))) * ((double) (((double) tan(k)) * ((double) (1.0 + ((double) (1.0 + ((double) pow((k / t), 2.0)))))))))))));
} else {
tmp = (2.0 / ((double) ((((double) pow(((double) sin(k)), 2.0)) / ((double) (l * l))) * ((double) ((((double) (t * ((double) (k * k)))) / ((double) cos(k))) + ((double) (2.0 * (((double) pow(t, 3.0)) / ((double) cos(k))))))))));
}
return tmp;
}



Bits error versus t



Bits error versus l



Bits error versus k
Results
if t < -4.0660806968844013e-80 or 3.69372990470769414e-33 < t Initial program 22.6
rmApplied add-cube-cbrt_binary6422.8
Applied unpow-prod-down_binary6422.8
Applied times-frac_binary6416.8
Applied associate-*l*_binary6414.7
rmApplied *-un-lft-identity_binary6414.7
Applied unpow-prod-down_binary6414.7
Applied times-frac_binary649.2
Simplified9.2
rmApplied associate-*l*_binary649.2
Simplified9.2
rmApplied associate-*l*_binary6410.4
if -4.0660806968844013e-80 < t < 3.69372990470769414e-33Initial program 55.6
Taylor expanded around inf 36.4
Simplified24.5
Final simplification14.5
herbie shell --seed 2020204
(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))))