\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.8693790316622432 \cdot 10^{-129} \lor \neg \left(t \leq 8.663175062679125 \cdot 10^{-147}\right):\\
\;\;\;\;\frac{1}{t \cdot \left(\sin k \cdot \frac{t}{\ell}\right)} \cdot \left(\frac{2}{2 + {\left(\frac{k}{t}\right)}^{2}} \cdot \frac{\frac{\ell}{t}}{\tan k}\right)\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \frac{\cos k \cdot \left(\ell \cdot \ell\right)}{\left(k \cdot k\right) \cdot \left(t \cdot {\sin k}^{2}\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 -1.8693790316622432e-129) (not (<= t 8.663175062679125e-147)))
(*
(/ 1.0 (* t (* (sin k) (/ t l))))
(* (/ 2.0 (+ 2.0 (pow (/ k t) 2.0))) (/ (/ l t) (tan k))))
(* 2.0 (/ (* (cos k) (* l l)) (* (* k k) (* t (pow (sin k) 2.0)))))))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 tmp;
if ((t <= -1.8693790316622432e-129) || !(t <= 8.663175062679125e-147)) {
tmp = (1.0 / (t * (sin(k) * (t / l)))) * ((2.0 / (2.0 + pow((k / t), 2.0))) * ((l / t) / tan(k)));
} else {
tmp = 2.0 * ((cos(k) * (l * l)) / ((k * k) * (t * pow(sin(k), 2.0))));
}
return tmp;
}
















Bits error versus t
















Bits error versus l
















Bits error versus k
Results
| Alternative 1 | |
|---|---|
| Error | 10.4 |
| Cost | 21250 |
| Alternative 2 | |
|---|---|
| Error | 10.5 |
| Cost | 20936 |
| Alternative 3 | |
|---|---|
| Error | 15.7 |
| Cost | 21571 |
| Alternative 4 | |
|---|---|
| Error | 16.8 |
| Cost | 21892 |
| Alternative 5 | |
|---|---|
| Error | 16.4 |
| Cost | 20866 |
| Alternative 6 | |
|---|---|
| Error | 16.4 |
| Cost | 20552 |
| Alternative 7 | |
|---|---|
| Error | 19.7 |
| Cost | 14208 |
| Alternative 8 | |
|---|---|
| Error | 20.8 |
| Cost | 14208 |
| Alternative 9 | |
|---|---|
| Error | 23.5 |
| Cost | 14536 |
| Alternative 10 | |
|---|---|
| Error | 26.6 |
| Cost | 8589 |
| Alternative 11 | |
|---|---|
| Error | 29.7 |
| Cost | 7938 |
| Alternative 12 | |
|---|---|
| Error | 30.2 |
| Cost | 64 |
| Alternative 13 | |
|---|---|
| Error | 61.9 |
| Cost | 64 |

if t < -1.86937903166224318e-129 or 8.66317506267912491e-147 < t Initial program 24.9
Simplified24.9
rmApplied cube-mult_binary64_44924.9
Applied times-frac_binary64_42517.0
Applied associate-*l*_binary64_36014.7
rmApplied *-un-lft-identity_binary64_41914.7
Applied times-frac_binary64_42510.1
Applied associate-*l*_binary64_3609.0
rmApplied *-un-lft-identity_binary64_4199.0
Applied times-frac_binary64_4259.0
Simplified7.3
rmApplied *-un-lft-identity_binary64_4197.3
Applied *-un-lft-identity_binary64_4197.3
Applied times-frac_binary64_4257.3
Applied times-frac_binary64_4256.3
Applied associate-*l*_binary64_3605.0
Simplified5.0
Simplified5.0
if -1.86937903166224318e-129 < t < 8.66317506267912491e-147Initial program 64.0
Simplified64.0
rmApplied cube-mult_binary64_44964.0
Applied times-frac_binary64_42560.0
Applied associate-*l*_binary64_36060.0
rmApplied *-un-lft-identity_binary64_41960.0
Applied times-frac_binary64_42548.6
Applied associate-*l*_binary64_36048.6
Taylor expanded around 0 28.6
Simplified28.6
Simplified28.6
Final simplification9.6
herbie shell --seed 2021044
(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))))