Mercurial > octave-antonio
changeset 9544:df0abc63c230
cache/use cached index vector on full find in logical masks
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Wed, 19 Aug 2009 07:55:31 +0200 |
parents | 1d51ab34b509 |
children | 8670e55078fd |
files | src/ChangeLog src/DLD-FUNCTIONS/find.cc |
diffstat | 2 files changed, 11 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Tue Aug 18 15:28:55 2009 -0400 +++ b/src/ChangeLog Wed Aug 19 07:55:31 2009 +0200 @@ -1,3 +1,8 @@ +2009-08-19 Jaroslav Hajek <highegg@gmail.com> + + * DLD-FUNCTIONS/find.cc (Ffind): Reuse cached index vector when + converting boolean mask to indices. + 2009-08-18 John W. Eaton <jwe@octave.org> * oct-conf.h.in: New #defines for HDF5_LDFLAGS and HDF5LDFLAGS.
--- a/src/DLD-FUNCTIONS/find.cc Tue Aug 18 15:28:55 2009 -0400 +++ b/src/DLD-FUNCTIONS/find.cc Wed Aug 19 07:55:31 2009 +0200 @@ -480,6 +480,12 @@ retval = find_nonzero_elem_idx (v, nargout, n_to_find, direction); } + else if (nargout <= 1 && n_to_find == -1 && direction == 1) + { + // This case is equivalent to extracting indices from a logical + // matrix. Try to reuse the possibly cached index vector. + retval(0) = arg.index_vector (); + } else { boolNDArray v = arg.bool_array_value ();