Mercurial > hg > octave-lyh
comparison liboctave/idx-vector.cc @ 10486:4e64fbbd5c58
allow non-integer values in ranges used for array indexing
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 02 Apr 2010 14:28:34 -0400 |
parents | ded9beac7582 |
children | 942386d6d1a5 |
comparison
equal
deleted
inserted
replaced
10485:b4e14e628fc9 | 10486:4e64fbbd5c58 |
---|---|
766 octave_idx_type nnz = bnda.nnz (); | 766 octave_idx_type nnz = bnda.nnz (); |
767 if (nnz <= bnda.numel () / factor) | 767 if (nnz <= bnda.numel () / factor) |
768 rep = new idx_vector_rep (bnda, nnz); | 768 rep = new idx_vector_rep (bnda, nnz); |
769 else | 769 else |
770 rep = new idx_mask_rep (bnda, nnz); | 770 rep = new idx_mask_rep (bnda, nnz); |
771 } | |
772 | |
773 idx_vector::idx_vector (const Range& r) | |
774 : rep (0) | |
775 { | |
776 if (r.nelem () > 0 && ! r.all_elements_are_ints ()) | |
777 { | |
778 gripe_invalid_index (false); | |
779 | |
780 Matrix m = r.matrix_value (); | |
781 | |
782 rep = new idx_vector_rep (m.map (xround)); | |
783 } | |
784 else | |
785 rep = new idx_range_rep (r); | |
786 | |
787 chkerr (); | |
771 } | 788 } |
772 | 789 |
773 bool idx_vector::maybe_reduce (octave_idx_type n, const idx_vector& j, | 790 bool idx_vector::maybe_reduce (octave_idx_type n, const idx_vector& j, |
774 octave_idx_type nj) | 791 octave_idx_type nj) |
775 { | 792 { |