Mercurial > octave-nkf
changeset 19450:06b23f224f52
fix problem with changeset e354372e20f2 (bug #43855)
* Sparse.cc (Sparse<T>::index (const idx_vector&, bool)): Also smash
dimensions when converting index to array.
* build-sparse-tests.sh: Update indexing test.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sun, 21 Dec 2014 17:38:14 -0500 |
parents | 972abb60c30f |
children | cdb6bc186c42 |
files | liboctave/array/Sparse.cc test/build-sparse-tests.sh |
diffstat | 2 files changed, 6 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/liboctave/array/Sparse.cc Sun Dec 21 17:49:28 2014 -0500 +++ b/liboctave/array/Sparse.cc Sun Dec 21 17:38:14 2014 -0500 @@ -1493,9 +1493,12 @@ // If indexing a sparse column vector by a vector, the result is a // sparse column vector, otherwise it inherits the shape of index. // Vector transpose is cheap, so do it right here. + + Array<octave_idx_type> tmp_idx = idx.as_array ().as_matrix (); + const Array<octave_idx_type> idxa = (idx_dims(0) == 1 - ? idx.as_array ().transpose () - : idx.as_array ()); + ? tmp_idx.transpose () + : tmp_idx); octave_idx_type new_nr = idxa.rows (); octave_idx_type new_nc = idxa.cols ();
--- a/test/build-sparse-tests.sh Sun Dec 21 17:49:28 2014 -0500 +++ b/test/build-sparse-tests.sh Sun Dec 21 17:38:14 2014 -0500 @@ -855,7 +855,7 @@ %!assert (as(idx'), sparse (af(idx'))); %!assert (as(flipud (idx(:))), sparse (af(flipud (idx(:))))) %!assert (as([idx,idx]), sparse (af([idx,idx]))) -%!error (as(reshape ([idx;idx], [1,length(idx),2]))) +%!assert (as(reshape ([idx;idx], [1,length(idx),2])), sparse(af(reshape ([idx;idx], [1,length(idx),2])))) %% Slice tests %!assert (as(ridx,cidx), sparse (af(ridx,cidx)))