Mercurial > hg > octave-terminal
changeset 5961:1c61d6a2c9e6
[project @ 2006-08-24 15:57:08 by jwe]
author | jwe |
---|---|
date | Thu, 24 Aug 2006 15:57:08 +0000 |
parents | 5c2747f40b56 |
children | 2289cafef60d |
files | scripts/ChangeLog scripts/miscellaneous/bincoeff.m |
diffstat | 2 files changed, 20 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,8 @@ +2006-08-24 Søren Hauberg <soren@hauberg.org> + + * miscellaneous/bincoeff.m: Use logical indexing instead of + indices computed by calling find on the logical index. + 2006-08-23 Quentin Spencer <qspencer@ieee.org> * control/system/tf2zp.m: Simplify gain calculation.
--- a/scripts/miscellaneous/bincoeff.m +++ b/scripts/miscellaneous/bincoeff.m @@ -68,33 +68,23 @@ sz = size (n); b = zeros (sz); - ind = find (! (k >= 0) | (k != real (round (k))) | isnan (n)); - if (any (ind)) - b(ind) = NaN; - endif - - ind = find (k == 0); - if (any (ind)) - b(ind) = 1; - endif + ind = (! (k >= 0) | (k != real (round (k))) | isnan (n)); + b(ind) = NaN; + + ind = (k == 0); + b(ind) = 1; - ind = find ((k > 0) & ((n == real (round (n))) & (n < 0))); - if any (ind) - b(ind) = (-1) .^ k(ind) .* exp (gammaln (abs (n(ind)) + k(ind)) ... - - gammaln (k(ind) + 1) - gammaln (abs (n(ind)))); - endif + ind = ((k > 0) & ((n == real (round (n))) & (n < 0))); + b(ind) = (-1) .^ k(ind) .* exp (gammaln (abs (n(ind)) + k(ind)) ... + - gammaln (k(ind) + 1) - gammaln (abs (n(ind)))); - ind = find ((k > 0) & ((n != real (round (n))) | (n >= k))); - if (length (ind) > 0) - b(ind) = exp (gammaln (n(ind) + 1) - gammaln (k(ind) + 1) ... - - gammaln (n(ind) - k(ind) + 1)); - endif - + ind = ((k > 0) & ((n != real (round (n))) | (n >= k))); + b(ind) = exp (gammaln (n(ind) + 1) - gammaln (k(ind) + 1) ... + - gammaln (n(ind) - k(ind) + 1)); + ## clean up rounding errors - ind = find (n == round (n)); - if (any (ind)) - b(ind) = round (b(ind)); - endif - + ind = (n == round (n)); + b(ind) = round (b(ind)); + endfunction