diff 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
line wrap: on
line diff
--- a/liboctave/idx-vector.cc
+++ b/liboctave/idx-vector.cc
@@ -770,6 +770,23 @@
     rep = new idx_mask_rep (bnda, nnz);
 }
 
+idx_vector::idx_vector (const Range& r)
+  : rep (0)
+{
+  if (r.nelem () > 0 && ! r.all_elements_are_ints ())
+    {
+      gripe_invalid_index (false);
+
+      Matrix m = r.matrix_value ();
+
+      rep = new idx_vector_rep (m.map (xround));
+    }
+  else
+    rep = new idx_range_rep (r);
+
+  chkerr ();
+}
+
 bool idx_vector::maybe_reduce (octave_idx_type n, const idx_vector& j,
                                octave_idx_type nj)
 {