\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 -1.6587877769855584 \cdot 10^{-228} \lor \neg \left(t \leq 6.937881836038158 \cdot 10^{-138}\right):\\
\;\;\;\;\frac{1}{t \cdot \left(\frac{t}{\ell} \cdot \sin k\right)} \cdot \left(\frac{2}{2 + {\left(\frac{k}{t}\right)}^{2}} \cdot \frac{\frac{\ell}{t}}{\tan k}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{\left(k \cdot k\right) \cdot \left(t \cdot {\left(\sin k\right)}^{2}\right)}{\left(\ell \cdot \ell\right) \cdot \cos k} + 2 \cdot \frac{{\left(\sin k\right)}^{2} \cdot {t}^{3}}{\left(\ell \cdot \ell\right) \cdot \cos k}}\\
\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 -1.6587877769855584e-228) (not (<= t 6.937881836038158e-138)))
(*
(/ 1.0 (* t (* (/ t l) (sin k))))
(* (/ 2.0 (+ 2.0 (pow (/ k t) 2.0))) (/ (/ l t) (tan k))))
(/
2.0
(+
(/ (* (* k k) (* t (pow (sin k) 2.0))) (* (* l l) (cos k)))
(* 2.0 (/ (* (pow (sin k) 2.0) (pow t 3.0)) (* (* l l) (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 <= -1.6587877769855584e-228) || !(t <= 6.937881836038158e-138))) {
tmp = ((double) ((1.0 / ((double) (t * ((double) ((t / l) * ((double) sin(k))))))) * ((double) ((2.0 / ((double) (2.0 + ((double) pow((k / t), 2.0))))) * ((l / t) / ((double) tan(k)))))));
} else {
tmp = (2.0 / ((double) ((((double) (((double) (k * k)) * ((double) (t * ((double) pow(((double) sin(k)), 2.0)))))) / ((double) (((double) (l * l)) * ((double) cos(k))))) + ((double) (2.0 * (((double) (((double) pow(((double) sin(k)), 2.0)) * ((double) pow(t, 3.0)))) / ((double) (((double) (l * l)) * ((double) cos(k))))))))));
}
return tmp;
}



Bits error versus t



Bits error versus l



Bits error versus k
Results
if t < -1.65878777698555843e-228 or 6.937881836038158e-138 < t Initial program 27.6
Simplified27.6
rmApplied cube-mult_binary6427.6
Applied times-frac_binary6419.8
Applied associate-*l*_binary6418.0
rmApplied *-un-lft-identity_binary6418.0
Applied times-frac_binary6412.8
Applied associate-*l*_binary6411.8
rmApplied *-un-lft-identity_binary6411.8
Applied times-frac_binary6411.9
Simplified10.0
rmApplied *-un-lft-identity_binary6410.0
Applied times-frac_binary648.8
Applied associate-*l*_binary647.5
Simplified7.5
if -1.65878777698555843e-228 < t < 6.937881836038158e-138Initial program 64.0
Simplified64.0
Taylor expanded around inf 40.8
Simplified40.8
Final simplification11.8
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))))