changeset 21660:53728df3e4c9

maint: for clarity, call ndims() rather than length() on dimension vectors. * ov-re-sparse.cc, QtHandlesUtils.cc, __lin_interpn__.cc, bsxfun.cc, cellfun.cc, data.cc, dot.cc, ellipj.cc, fft.cc, fft2.cc, fftn.cc, filter.cc, gl-render.cc, graphics.cc, mex.cc, oct-map.h, sub2ind.cc, symtab.cc, tril.cc, typecast.cc, utils.cc, variables.cc, ov-base-diag.cc, ov-base-int.cc, ov-base.cc, ov-base.h, ov-bool-mat.cc, ov-bool-sparse.cc, ov-cell.cc, ov-class.cc, ov-cx-mat.cc, ov-cx-sparse.cc, ov-flt-cx-mat.cc, ov-flt-re-mat.cc, ov-intx.h, ov-java.cc, ov-lazy-idx.cc, ov-re-mat.cc, ov-str-mat.cc, ov-struct.cc, ov.cc, pt-arg-list.cc, pt-mat.cc, Array-util.cc, Array.cc, Array.h, CNDArray.cc, CSparse.cc, Sparse.cc, Sparse.h, dNDArray.cc, dSparse.cc, dim-vector.cc, dim-vector.h, fCNDArray.cc, fNDArray.cc, idx-vector.cc, bsxfun.h, oct-fftw.cc, mx-inlines.cc, lo-array-errwarn.cc, lo-array-gripes.cc: For clarity, call ndims() rather than length() on dimension vectors.
author Rik <rik@octave.org>
date Mon, 02 May 2016 08:53:18 -0700
parents ff2347e1df02
children 1b9a36a66b01
files libgui/graphics/QtHandlesUtils.cc libinterp/corefcn/__lin_interpn__.cc libinterp/corefcn/bsxfun.cc libinterp/corefcn/cellfun.cc libinterp/corefcn/data.cc libinterp/corefcn/dot.cc libinterp/corefcn/ellipj.cc libinterp/corefcn/fft.cc libinterp/corefcn/fft2.cc libinterp/corefcn/fftn.cc libinterp/corefcn/filter.cc libinterp/corefcn/gl-render.cc libinterp/corefcn/graphics.cc libinterp/corefcn/mex.cc libinterp/corefcn/oct-map.h libinterp/corefcn/sub2ind.cc libinterp/corefcn/symtab.cc libinterp/corefcn/tril.cc libinterp/corefcn/typecast.cc libinterp/corefcn/utils.cc libinterp/corefcn/variables.cc libinterp/octave-value/ov-base-diag.cc libinterp/octave-value/ov-base-int.cc libinterp/octave-value/ov-base.cc libinterp/octave-value/ov-base.h libinterp/octave-value/ov-bool-mat.cc libinterp/octave-value/ov-bool-sparse.cc libinterp/octave-value/ov-cell.cc libinterp/octave-value/ov-class.cc libinterp/octave-value/ov-cx-mat.cc libinterp/octave-value/ov-cx-sparse.cc libinterp/octave-value/ov-flt-cx-mat.cc libinterp/octave-value/ov-flt-re-mat.cc libinterp/octave-value/ov-intx.h libinterp/octave-value/ov-java.cc libinterp/octave-value/ov-lazy-idx.cc libinterp/octave-value/ov-re-mat.cc libinterp/octave-value/ov-re-sparse.cc libinterp/octave-value/ov-str-mat.cc libinterp/octave-value/ov-struct.cc libinterp/octave-value/ov.cc libinterp/parse-tree/pt-arg-list.cc libinterp/parse-tree/pt-mat.cc liboctave/array/Array-util.cc liboctave/array/Array.cc liboctave/array/Array.h liboctave/array/CNDArray.cc liboctave/array/CSparse.cc liboctave/array/Sparse.cc liboctave/array/Sparse.h liboctave/array/dNDArray.cc liboctave/array/dSparse.cc liboctave/array/dim-vector.cc liboctave/array/dim-vector.h liboctave/array/fCNDArray.cc liboctave/array/fNDArray.cc liboctave/array/idx-vector.cc liboctave/numeric/bsxfun.h liboctave/numeric/oct-fftw.cc liboctave/operators/mx-inlines.cc liboctave/util/lo-array-errwarn.cc liboctave/util/lo-array-gripes.cc
diffstat 62 files changed, 352 insertions(+), 354 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/graphics/QtHandlesUtils.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libgui/graphics/QtHandlesUtils.cc	Mon May 02 08:53:18 2016 -0700
@@ -277,7 +277,7 @@
 {
   dim_vector dv (v.dims ());
 
-  if (dv.length () == 3 && dv(2) == 3)
+  if (dv.ndims () == 3 && dv(2) == 3)
     {
       int w = qMin (dv(1), static_cast<octave_idx_type> (width));
       int h = qMin (dv(0), static_cast<octave_idx_type> (height));
--- a/libinterp/corefcn/__lin_interpn__.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/__lin_interpn__.cc	Mon May 02 08:53:18 2016 -0700
@@ -39,7 +39,7 @@
 isvector (const T& array)
 {
   const dim_vector dv = array.dims ();
-  return dv.length () == 2 && (dv(0) == 1 || dv(1) == 1);
+  return dv.ndims () == 2 && (dv(0) == 1 || dv(1) == 1);
 }
 
 // lookup a value in a sorted table (lookup.m)
--- a/libinterp/corefcn/bsxfun.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/bsxfun.cc	Mon May 02 08:53:18 2016 -0700
@@ -232,7 +232,7 @@
                      const dim_vector& dva, const dim_vector& dvc,
                      octave_idx_type i, octave_value_list &idx)
 {
-  octave_idx_type nd = dva.length ();
+  octave_idx_type nd = dva.ndims ();
 
   if (i == 0)
     {
@@ -284,7 +284,7 @@
 static void
 update_index (octave_value_list& idx, const dim_vector& dv, octave_idx_type i)
 {
-  octave_idx_type nd = dv.length ();
+  octave_idx_type nd = dv.ndims ();
 
   if (i == 0)
     {
@@ -306,7 +306,7 @@
 static void
 update_index (Array<int>& idx, const dim_vector& dv, octave_idx_type i)
 {
-  octave_idx_type nd = dv.length ();
+  octave_idx_type nd = dv.ndims ();
 
   idx(0) = 0;
   for (octave_idx_type j = 1; j < nd; j++)
@@ -373,9 +373,9 @@
   if (retval.empty ())
     {
       dim_vector dva = A.dims ();
-      octave_idx_type nda = dva.length ();
+      octave_idx_type nda = dva.ndims ();
       dim_vector dvb = B.dims ();
-      octave_idx_type ndb = dvb.length ();
+      octave_idx_type ndb = dvb.ndims ();
       octave_idx_type nd = nda;
 
       if (nda > ndb)
@@ -444,7 +444,7 @@
           octave_value_list idxB;
           octave_value C;
           octave_value_list inputs (2);
-          Array<int> ra_idx (dim_vector (dvc.length (), 1), 0);
+          Array<int> ra_idx (dim_vector (dvc.ndims (), 1), 0);
 
 
           for (octave_idx_type i = 0; i < ncount; i++)
--- a/libinterp/corefcn/cellfun.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/cellfun.cc	Mon May 02 08:53:18 2016 -0700
@@ -194,7 +194,7 @@
       for (octave_idx_type count = 0; count < k; count++)
         {
           dim_vector dv = f_args.elem (count).dims ();
-          if (d < dv.length ())
+          if (d < dv.ndims ())
             result(count) = static_cast<double> (dv(d));
           else
             result(count) = 1.0;
@@ -1604,11 +1604,11 @@
                     Array<int>& perm)
 {
   int dvl = dimv.numel ();
-  int maxd = dv.length ();
+  int maxd = dv.ndims ();
   celldv = dv;
   for (int i = 0; i < dvl; i++)
     maxd = std::max (maxd, dimv(i));
-  if (maxd > dv.length ())
+  if (maxd > dv.ndims ())
     celldv.resize (maxd, 1);
   arraydv = celldv;
 
@@ -1852,7 +1852,7 @@
       for (octave_idx_type j = 0; j < d[i].numel (); j++)
         s += d[i](j);
 
-      octave_idx_type r = i < dv.length () ? dv(i) : 1;
+      octave_idx_type r = i < dv.ndims () ? dv(i) : 1;
 
       if (s != r)
         error ("mat2cell: mismatch on dimension %d (%d != %d)", i+1, r, s);
@@ -2209,7 +2209,7 @@
   else
     {
       const dim_vector dv = array.dims ();
-      int ndims = dv.length ();
+      int ndims = dv.ndims ();
       if (dim < 0)
         dim = dv.first_non_singleton ();
       ndims = std::max (ndims, dim + 1);
@@ -2331,7 +2331,7 @@
       octave_idx_type n = lb.numel ();
       retcell = Cell (1, n);
       const dim_vector dv = x.dims ();
-      int ndims = dv.length ();
+      int ndims = dv.ndims ();
       if (dim < 0)
         dim = dv.first_non_singleton ();
       ndims = std::max (ndims, dim + 1);
--- a/libinterp/corefcn/data.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/data.cc	Mon May 02 08:53:18 2016 -0700
@@ -2095,7 +2095,7 @@
           octave_value tmp = args(0);
           tmp = tmp.resize (dim_vector (0,0)).resize (dv);
 
-          int dv_len = dv.length ();
+          int dv_len = dv.ndims ();
           Array<octave_idx_type> ra_idx (dim_vector (dv_len, 1), 0);
 
           for (int j = 0; j < n_args; j++)
@@ -2115,7 +2115,7 @@
                   break;
                 }
               else
-                ra_idx(dim) += (dim < dv_tmp.length () ? dv_tmp(dim) : 1);
+                ra_idx(dim) += (dim < dv_tmp.ndims () ? dv_tmp(dim) : 1);
             }
           retval = tmp;
         }
@@ -2812,7 +2812,7 @@
         }
       else
         {
-          int ndims = dimensions.length ();
+          int ndims = dimensions.ndims ();
 
           NoAlias<Matrix> m (1, ndims);
 
@@ -2831,7 +2831,7 @@
       if (nd < 1)
         error ("size: requested dimension DIM (= %d) out of range", nd);
 
-      if (nd <= dv.length ())
+      if (nd <= dv.ndims ())
         retval(0) = dv(nd-1);
       else
         retval(0) = 1;
@@ -3676,7 +3676,7 @@
 
   dim_vector sz = args(0).dims ();
 
-  return ovl (sz.length () == 2 && (sz(0) == 1 || sz(1) == 1));
+  return ovl (sz.ndims () == 2 && (sz(0) == 1 || sz(1) == 1));
 }
 
 /*
@@ -3711,7 +3711,7 @@
 
   dim_vector sz = args(0).dims ();
 
-  return ovl (sz.length () == 2 && sz(0) == 1);
+  return ovl (sz.ndims () == 2 && sz(0) == 1);
 }
 
 /*
@@ -3756,7 +3756,7 @@
 
   dim_vector sz = args(0).dims ();
 
-  return ovl (sz.length () == 2 && sz(1) == 1);
+  return ovl (sz.ndims () == 2 && sz(1) == 1);
 }
 
 /*
@@ -3800,7 +3800,7 @@
 
   dim_vector sz = args(0).dims ();
 
-  return ovl (sz.length () == 2 && sz(0) >= 0 && sz(1) >= 0);
+  return ovl (sz.ndims () == 2 && sz(0) >= 0 && sz(1) >= 0);
 }
 
 /*
@@ -3843,7 +3843,7 @@
 
   dim_vector sz = args(0).dims ();
 
-  return ovl (sz.length () == 2 && sz(0) == sz(1));
+  return ovl (sz.ndims () == 2 && sz(0) == sz(1));
 }
 
 /*
@@ -3957,7 +3957,7 @@
 
     case oct_data_conv::dt_double:
       {
-        if (val == 1 && dims.length () == 2 && dims(0) == 1)
+        if (val == 1 && dims.ndims () == 2 && dims(0) == 1)
           retval = Range (1.0, 0.0, dims(1));  // packed form
         else
           retval = NDArray (dims, val);
@@ -5161,9 +5161,9 @@
   octave_value arg_2 = args(1);
 
   dim_vector sz1 = arg_1.dims ();
-  bool isvector1 = sz1.length () == 2 && (sz1(0) == 1 || sz1(1) == 1);
+  bool isvector1 = sz1.ndims () == 2 && (sz1(0) == 1 || sz1(1) == 1);
   dim_vector sz2 = arg_2.dims ();
-  bool isvector2 = sz2.length () == 2 && (sz2(0) == 1 || sz2(1) == 1);
+  bool isvector2 = sz2.ndims () == 2 && (sz2(0) == 1 || sz2(1) == 1);
 
   if (! isvector1 || ! isvector2)
     error ("linspace: A, B must be scalars or vectors");
@@ -7205,7 +7205,7 @@
 
   if (dim < 0)
     dim = vals.dims ().first_non_singleton ();
-  else if (dim >= rdv.length ())
+  else if (dim >= rdv.ndims ())
     rdv.resize (dim+1, 1);
 
   rdv(dim) = n;
@@ -7507,7 +7507,7 @@
               retval = array;
               while (order > 0)
                 {
-                  if (dim == dv.length ())
+                  if (dim == dv.ndims ())
                     {
                       retval = do_diff (array, order, dim - 1);
                       order = 0;
--- a/libinterp/corefcn/dot.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/dot.cc	Mon May 02 08:53:18 2016 -0700
@@ -79,8 +79,8 @@
               dim_vector& z, octave_idx_type& m, octave_idx_type& n,
               octave_idx_type& k)
 {
-  int nd = x.length ();
-  assert (nd == y.length ());
+  int nd = x.ndims ();
+  assert (nd == y.ndims ());
   z = dim_vector::alloc (nd);
   m = 1, n = 1, k = 1;
   for (int i = 0; i < nd; i++)
@@ -298,12 +298,12 @@
 
   const dim_vector dimx = argx.dims ();
   const dim_vector dimy = argy.dims ();
-  int nd = dimx.length ();
+  int nd = dimx.ndims ();
   octave_idx_type m = dimx(0);
   octave_idx_type k = dimx(1);
   octave_idx_type n = dimy(1);
   octave_idx_type np = 1;
-  bool match = dimy(0) == k && nd == dimy.length ();
+  bool match = dimy(0) == k && nd == dimy.ndims ();
   dim_vector dimz = dim_vector::alloc (nd);
   dimz(0) = m;
   dimz(1) = n;
--- a/libinterp/corefcn/ellipj.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/ellipj.cc	Mon May 02 08:53:18 2016 -0700
@@ -190,7 +190,7 @@
 
               dim_vector sz_u = u.dims ();
 
-              if (sz_u.length () == 2 && sz_m.length () == 2
+              if (sz_u.ndims () == 2 && sz_m.ndims () == 2
                   && sz_u(1) == 1 && sz_m(0) == 1)
                 {
                   // u is real column vector, m is row vector
@@ -239,7 +239,7 @@
 
               dim_vector sz_u = u.dims ();
 
-              if (sz_u.length () == 2 && sz_m.length () == 2
+              if (sz_u.ndims () == 2 && sz_m.ndims () == 2
                   && sz_u(1) == 1 && sz_m(0) == 1)
                 {
                   // u is complex column vector, m is row vector
--- a/libinterp/corefcn/fft.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/fft.cc	Mon May 02 08:53:18 2016 -0700
@@ -72,7 +72,7 @@
       double dval = args(2).double_value ();
       if (xisnan (dval))
         error ("%s: DIM cannot be NaN", fcn);
-      else if (dval < 1 || dval > dims.length ())
+      else if (dval < 1 || dval > dims.ndims ())
         error ("%s: DIM must be a valid dimension along which to perform FFT",
                fcn);
       else
@@ -80,13 +80,13 @@
         dim = NINT (dval) - 1;
     }
 
-  for (octave_idx_type i = 0; i < dims.length (); i++)
+  for (octave_idx_type i = 0; i < dims.ndims (); i++)
     if (dims(i) < 0)
       return retval;
 
   if (dim < 0)
     {
-      for (octave_idx_type i = 0; i < dims.length (); i++)
+      for (octave_idx_type i = 0; i < dims.ndims (); i++)
         if (dims(i) > 1)
           {
             dim = i;
--- a/libinterp/corefcn/fft2.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/fft2.cc	Mon May 02 08:53:18 2016 -0700
@@ -77,7 +77,7 @@
         error ("%s: number of columns (M) must be greater than zero", fcn);
     }
 
-  for (int i = 0; i < dims.length (); i++)
+  for (int i = 0; i < dims.ndims (); i++)
     if (dims(i) < 0)
       return retval;
 
--- a/libinterp/corefcn/fftn.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/fftn.cc	Mon May 02 08:53:18 2016 -0700
@@ -52,7 +52,7 @@
   octave_value arg = args(0);
   dim_vector dims = arg.dims ();
 
-  for (int i = 0; i < dims.length (); i++)
+  for (int i = 0; i < dims.ndims (); i++)
     if (dims(i) < 0)
       return retval;
 
@@ -63,10 +63,10 @@
       if (val.rows () > val.columns ())
         val = val.transpose ();
 
-      if (val.columns () != dims.length () || val.rows () != 1)
+      if (val.columns () != dims.ndims () || val.rows () != 1)
         error ("%s: SIZE must be a vector of length dim", fcn);
 
-      for (int i = 0; i < dims.length (); i++)
+      for (int i = 0; i < dims.ndims (); i++)
         {
           if (xisnan (val(i,0)))
             error ("%s: SIZE has invalid NaN entries", fcn);
--- a/libinterp/corefcn/filter.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/filter.cc	Mon May 02 08:53:18 2016 -0700
@@ -64,7 +64,7 @@
     error ("filter: the first element of A must be nonzero");
 
   dim_vector x_dims = x.dims ();
-  if (dim < 0 || dim > x_dims.length ())
+  if (dim < 0 || dim > x_dims.ndims ())
     error ("filter: DIM must be a valid dimension");
 
   octave_idx_type x_len = x_dims(dim);
@@ -75,7 +75,7 @@
   if (si_len != ab_len - 1)
     error ("filter: first dimension of SI must be of length max (length (a), length (b)) - 1");
 
-  if (si_dims.length () != x_dims.length ())
+  if (si_dims.ndims () != x_dims.ndims ())
     error ("filter: dimensionality of SI and X must agree");
 
   for (octave_idx_type i = 1; i < dim; i++)
@@ -83,7 +83,7 @@
       if (si_dims(i) != x_dims(i-1))
         error ("filter: dimensionality of SI and X must agree");
     }
-  for (octave_idx_type i = dim+1; i < x_dims.length (); i++)
+  for (octave_idx_type i = dim+1; i < x_dims.ndims (); i++)
     {
       if (si_dims(i) != x_dims(i))
         error ("filter: dimensionality of SI and X must agree");
@@ -210,7 +210,7 @@
 
   if (dim < 0)
     dim = x_dims.first_non_singleton ();
-  else if (dim > x_dims.length ())
+  else if (dim > x_dims.ndims ())
     error ("filter: DIM must be a valid dimension");
 
   octave_idx_type a_len = a.numel ();
@@ -341,7 +341,7 @@
   if (nargin == 5)
     {
       dim = args(4).nint_value () - 1;
-      if (dim < 0 || dim >= x_dims.length ())
+      if (dim < 0 || dim >= x_dims.ndims ())
         error ("filter: DIM must be a valid dimension");
     }
   else
--- a/libinterp/corefcn/gl-render.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/gl-render.cc	Mon May 02 08:53:18 2016 -0700
@@ -175,7 +175,7 @@
   dim_vector dv (data.dims ());
 
   // Expect RGB data
-  if (dv.length () == 3 && dv(2) == 3)
+  if (dv.ndims () == 3 && dv(2) == 3)
     {
       // FIXME: dim_vectors hold octave_idx_type values.
       //        Should we check for dimensions larger than intmax?
@@ -2959,7 +2959,7 @@
   glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
 
   // Expect RGB data
-  if (dv.length () == 3 && dv(2) == 3)
+  if (dv.ndims () == 3 && dv(2) == 3)
     {
       if (cdata.is_double_type ())
         {
--- a/libinterp/corefcn/graphics.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/graphics.cc	Mon May 02 08:53:18 2016 -0700
@@ -888,7 +888,7 @@
   dim_vector dv (cdata.dims ());
 
   // TrueColor data doesn't require conversion
-  if (dv.length () == cdim && dv(cdim-1) == 3)
+  if (dv.ndims () == cdim && dv(cdim-1) == 3)
     return cdata;
 
   Matrix cmap (1, 3, 0.0);
@@ -1411,7 +1411,7 @@
         return true;
 
       dim_vector vdims = v.dims ();
-      int vlen = vdims.length ();
+      int vlen = vdims.ndims ();
 
       xok = false;
 
@@ -1421,7 +1421,7 @@
         {
           dim_vector itdims = (*it);
 
-          if (itdims.length () == vlen)
+          if (itdims.ndims () == vlen)
             {
               xok = true;
 
--- a/libinterp/corefcn/mex.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/mex.cc	Mon May 02 08:53:18 2016 -0700
@@ -632,7 +632,7 @@
 
   mxArray_matlab (mxClassID id_arg, const dim_vector& dv)
     : mxArray_base (), class_name (0), id (id_arg),
-      ndims (dv.length ()),
+      ndims (dv.ndims ()),
       dims (static_cast<mwSize *> (mxArray::malloc (ndims * sizeof (mwSize))))
   {
     for (mwIndex i = 0; i < ndims; i++)
--- a/libinterp/corefcn/oct-map.h	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/oct-map.h	Mon May 02 08:53:18 2016 -0700
@@ -397,7 +397,7 @@
 
   dim_vector dims (void) const { return dimensions; }
 
-  int ndims (void) const { return dimensions.length (); }
+  int ndims (void) const { return dimensions.ndims (); }
 
   octave_map transpose (void) const;
 
--- a/libinterp/corefcn/sub2ind.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/sub2ind.cc	Mon May 02 08:53:18 2016 -0700
@@ -185,7 +185,7 @@
     {
       idx_vector idx = args(1).index_vector ();
 
-      if (nargout > dv.length ())
+      if (nargout > dv.ndims ())
         dv = dv.redim (nargout);
 
       retval = Array<octave_value> (ind2sub (dv, idx));
--- a/libinterp/corefcn/symtab.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/symtab.cc	Mon May 02 08:53:18 2016 -0700
@@ -1555,7 +1555,7 @@
               octave_value tmp = val;
               Matrix sz = tmp.size ();
               dim_vector dv = dim_vector::alloc (sz.numel ());
-              for (octave_idx_type i = 0; i < dv.length (); i++)
+              for (octave_idx_type i = 0; i < dv.ndims (); i++)
                 dv(i) = sz(i);
 
               char storage = ' ';
--- a/libinterp/corefcn/tril.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/tril.cc	Mon May 02 08:53:18 2016 -0700
@@ -205,7 +205,7 @@
   octave_value arg = args(0);
 
   dim_vector dims = arg.dims ();
-  if (dims.length () != 2)
+  if (dims.ndims () != 2)
     error ("%s: need a 2-D matrix", name.c_str ());
   else if (k < -dims(0) || k > dims(1))
     error ("%s: requested diagonal out of range", name.c_str ());
--- a/libinterp/corefcn/typecast.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/typecast.cc	Mon May 02 08:53:18 2016 -0700
@@ -38,9 +38,9 @@
 static dim_vector
 get_vec_dims (const dim_vector& old_dims, octave_idx_type n)
 {
-  if (old_dims.length () == 2 && old_dims(0) == 1)
+  if (old_dims.ndims () == 2 && old_dims(0) == 1)
     return dim_vector (1, n);
-  else if (old_dims.length () == 2 && old_dims(0) == 0 && old_dims(1) == 0)
+  else if (old_dims.ndims () == 2 && old_dims(0) == 0 && old_dims(1) == 0)
     return dim_vector ();
   else
     return dim_vector (n, 1);
--- a/libinterp/corefcn/utils.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/utils.cc	Mon May 02 08:53:18 2016 -0700
@@ -1101,7 +1101,7 @@
 {
   bool neg = false;
 
-  for (int i = 0; i < dim.length (); i++)
+  for (int i = 0; i < dim.ndims (); i++)
     {
       if (dim(i) < 0)
         {
--- a/libinterp/corefcn/variables.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/corefcn/variables.cc	Mon May 02 08:53:18 2016 -0700
@@ -1144,7 +1144,7 @@
 
   dim_vector dv = dim_vector::alloc (sz.numel ());
 
-  for (octave_idx_type i = 0; i < dv.length (); i++)
+  for (octave_idx_type i = 0; i < dv.ndims (); i++)
     dv(i) = sz(i);
 
   return dv.str ();
--- a/libinterp/octave-value/ov-base-diag.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-base-diag.cc	Mon May 02 08:53:18 2016 -0700
@@ -262,7 +262,7 @@
 octave_base_diag<DMT, MT>::resize (const dim_vector& dv, bool fill) const
 {
   octave_value retval;
-  if (dv.length () == 2)
+  if (dv.ndims () == 2)
     {
       DMT rm (matrix);
       rm.resize (dv(0), dv(1));
--- a/libinterp/octave-value/ov-base-int.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-base-int.cc	Mon May 02 08:53:18 2016 -0700
@@ -188,12 +188,12 @@
 bool
 octave_base_int_matrix<T>::save_ascii (std::ostream& os)
 {
-  dim_vector d = this->dims ();
+  dim_vector dv = this->dims ();
 
-  os << "# ndims: " << d.length () << "\n";
+  os << "# ndims: " << dv.ndims () << "\n";
 
-  for (int i = 0; i < d.length (); i++)
-    os << " " << d(i);
+  for (int i = 0; i < dv.ndims (); i++)
+    os << " " << dv(i);
 
   os << "\n" << this->matrix;
 
@@ -234,16 +234,16 @@
 bool
 octave_base_int_matrix<T>::save_binary (std::ostream& os, bool&)
 {
-  dim_vector d = this->dims ();
-  if (d.length () < 1)
+  dim_vector dv = this->dims ();
+  if (dv.ndims () < 1)
     return false;
 
   // Use negative value for ndims to differentiate with old format!!
-  int32_t tmp = - d.length ();
+  int32_t tmp = - dv.ndims ();
   os.write (reinterpret_cast<char *> (&tmp), 4);
-  for (int i=0; i < d.length (); i++)
+  for (int i=0; i < dv.ndims (); i++)
     {
-      tmp = d(i);
+      tmp = dv(i);
       os.write (reinterpret_cast<char *> (&tmp), 4);
     }
 
@@ -337,7 +337,7 @@
   if (empty)
     return (empty > 0);
 
-  int rank = dv.length ();
+  int rank = dv.ndims ();
   hid_t space_hid, data_hid;
   space_hid = data_hid = -1;
   OCTAVE_LOCAL_BUFFER (hsize_t, hdims, rank);
--- a/libinterp/octave-value/ov-base.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-base.cc	Mon May 02 08:53:18 2016 -0700
@@ -140,8 +140,8 @@
 octave_base_value::size (void)
 {
   const dim_vector dv = dims ();
-  Matrix mdv (1, dv.length ());
-  for (octave_idx_type i = 0; i < dv.length (); i++)
+  Matrix mdv (1, dv.ndims ());
+  for (octave_idx_type i = 0; i < dv.ndims (); i++)
     mdv(i) = dv(i);
   return mdv;
 }
--- a/libinterp/octave-value/ov-base.h	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-base.h	Mon May 02 08:53:18 2016 -0700
@@ -310,7 +310,7 @@
   }
 
   virtual int ndims (void) const
-  { return dims ().length (); }
+  { return dims ().ndims (); }
 
   virtual octave_idx_type numel (void) const { return dims ().numel (); }
 
--- a/libinterp/octave-value/ov-bool-mat.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-bool-mat.cc	Mon May 02 08:53:18 2016 -0700
@@ -178,14 +178,14 @@
 bool
 octave_bool_matrix::save_ascii (std::ostream& os)
 {
-  dim_vector d = dims ();
-  if (d.length () > 2)
+  dim_vector dv = dims ();
+  if (dv.ndims () > 2)
     {
       NDArray tmp = array_value ();
-      os << "# ndims: " << d.length () << "\n";
+      os << "# ndims: " << dv.ndims () << "\n";
 
-      for (int i = 0; i < d.length (); i++)
-        os << " " << d(i);
+      for (int i = 0; i < dv.ndims (); i++)
+        os << " " << dv(i);
 
       os << "\n" << tmp;
     }
@@ -289,16 +289,16 @@
 octave_bool_matrix::save_binary (std::ostream& os, bool& /* save_as_floats */)
 {
 
-  dim_vector d = dims ();
-  if (d.length () < 1)
+  dim_vector dv = dims ();
+  if (dv.ndims () < 1)
     return false;
 
   // Use negative value for ndims to differentiate with old format!!
-  int32_t tmp = - d.length ();
+  int32_t tmp = - dv.ndims ();
   os.write (reinterpret_cast<char *> (&tmp), 4);
-  for (int i = 0; i < d.length (); i++)
+  for (int i = 0; i < dv.ndims (); i++)
     {
-      tmp = d(i);
+      tmp = dv(i);
       os.write (reinterpret_cast<char *> (&tmp), 4);
     }
 
@@ -382,7 +382,7 @@
   if (empty)
     return (empty > 0);
 
-  int rank = dv.length ();
+  int rank = dv.ndims ();
   hid_t space_hid, data_hid;
   space_hid = data_hid = -1;
   boolNDArray m = bool_array_value ();
--- a/libinterp/octave-value/ov-bool-sparse.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-bool-sparse.cc	Mon May 02 08:53:18 2016 -0700
@@ -209,15 +209,15 @@
 bool
 octave_sparse_bool_matrix::save_binary (std::ostream& os, bool&)
 {
-  dim_vector d = this->dims ();
-  if (d.length () < 1)
+  dim_vector dv = this->dims ();
+  if (dv.ndims () < 1)
     return false;
 
   // Ensure that additional memory is deallocated
   matrix.maybe_compress ();
 
-  int nr = d(0);
-  int nc = d(1);
+  int nr = dv(0);
+  int nc = dv(1);
   int nz = nnz ();
 
   int32_t itmp;
--- a/libinterp/octave-value/ov-cell.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-cell.cc	Mon May 02 08:53:18 2016 -0700
@@ -704,18 +704,18 @@
 bool
 octave_cell::save_ascii (std::ostream& os)
 {
-  dim_vector d = dims ();
-  if (d.length () > 2)
+  dim_vector dv = dims ();
+  if (dv.ndims () > 2)
     {
-      os << "# ndims: " << d.length () << "\n";
+      os << "# ndims: " << dv.ndims () << "\n";
 
-      for (int i = 0; i < d.length (); i++)
-        os << " " << d(i);
+      for (int i = 0; i < dv.ndims (); i++)
+        os << " " << dv(i);
       os << "\n";
 
       Cell tmp = cell_value ();
 
-      for (octave_idx_type i = 0; i < d.numel (); i++)
+      for (octave_idx_type i = 0; i < dv.numel (); i++)
         {
           octave_value o_val = tmp.elem (i);
 
@@ -857,22 +857,22 @@
 bool
 octave_cell::save_binary (std::ostream& os, bool& save_as_floats)
 {
-  dim_vector d = dims ();
-  if (d.length () < 1)
+  dim_vector dv = dims ();
+  if (dv.ndims () < 1)
     return false;
 
   // Use negative value for ndims
-  int32_t di = - d.length ();
+  int32_t di = - dv.ndims ();
   os.write (reinterpret_cast<char *> (&di), 4);
-  for (int i = 0; i < d.length (); i++)
+  for (int i = 0; i < dv.ndims (); i++)
     {
-      di = d(i);
+      di = dv(i);
       os.write (reinterpret_cast<char *> (&di), 4);
     }
 
   Cell tmp = cell_value ();
 
-  for (octave_idx_type i = 0; i < d.numel (); i++)
+  for (octave_idx_type i = 0; i < dv.numel (); i++)
     {
       octave_value o_val = tmp.elem (i);
 
@@ -972,7 +972,7 @@
   if (empty)
     return (empty > 0);
 
-  hsize_t rank = dv.length ();
+  hsize_t rank = dv.ndims ();
   hid_t space_hid, data_hid, size_hid;
   space_hid = data_hid = size_hid = -1;
 
@@ -1328,14 +1328,14 @@
   // except if the struct is a column vector.
 
   dim_vector result_dv;
-  if (m_dv(m_dv.length () - 1) == 1)
-    result_dv.resize (m_dv.length ());
+  if (m_dv(m_dv.ndims () - 1) == 1)
+    result_dv.resize (m_dv.ndims ());
   else
-    result_dv.resize (m_dv.length () + 1); // Add 1 for the fields.
+    result_dv.resize (m_dv.ndims () + 1); // Add 1 for the fields.
 
   result_dv(0) = num_fields;
 
-  for (int i = 1; i < result_dv.length (); i++)
+  for (int i = 1; i < result_dv.ndims (); i++)
     result_dv(i) = m_dv(i-1);
 
   NoAlias<Cell> c (result_dv);
--- a/libinterp/octave-value/ov-class.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-class.cc	Mon May 02 08:53:18 2016 -0700
@@ -308,7 +308,7 @@
     {
       dim_vector dv = dims ();
 
-      int nd = dv.length ();
+      int nd = dv.ndims ();
 
       retval.resize (1, nd);
 
--- a/libinterp/octave-value/ov-cx-mat.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-cx-mat.cc	Mon May 02 08:53:18 2016 -0700
@@ -315,15 +315,15 @@
 bool
 octave_complex_matrix::save_ascii (std::ostream& os)
 {
-  dim_vector d = dims ();
-  if (d.length () > 2)
+  dim_vector dv = dims ();
+  if (dv.ndims () > 2)
     {
       ComplexNDArray tmp = complex_array_value ();
 
-      os << "# ndims: " << d.length () << "\n";
+      os << "# ndims: " << dv.ndims () << "\n";
 
-      for (int i = 0; i < d.length (); i++)
-        os << " " << d(i);
+      for (int i = 0; i < dv.ndims (); i++)
+        os << " " << dv(i);
 
       os << "\n" << tmp;
     }
@@ -410,16 +410,16 @@
 bool
 octave_complex_matrix::save_binary (std::ostream& os, bool& save_as_floats)
 {
-  dim_vector d = dims ();
-  if (d.length () < 1)
+  dim_vector dv = dims ();
+  if (dv.ndims () < 1)
     return false;
 
   // Use negative value for ndims to differentiate with old format!!
-  int32_t tmp = - d.length ();
+  int32_t tmp = - dv.ndims ();
   os.write (reinterpret_cast<char *> (&tmp), 4);
-  for (int i = 0; i < d.length (); i++)
+  for (int i = 0; i < dv.ndims (); i++)
     {
-      tmp = d(i);
+      tmp = dv(i);
       os.write (reinterpret_cast<char *> (&tmp), 4);
     }
 
@@ -435,7 +435,7 @@
       else
         st = LS_FLOAT;
     }
-  else if (d.numel () > 4096) // FIXME: make this configurable.
+  else if (dv.numel () > 4096) // FIXME: make this configurable.
     {
       double max_val, min_val;
       if (m.all_integers (max_val, min_val))
@@ -445,7 +445,7 @@
 
   const Complex *mtmp = m.data ();
   write_doubles (os, reinterpret_cast<const double *> (mtmp), st,
-                 2 * d.numel ());
+                 2 * dv.numel ());
 
   return true;
 }
@@ -536,7 +536,7 @@
   if (empty)
     return (empty > 0);
 
-  int rank = dv.length ();
+  int rank = dv.ndims ();
   hid_t space_hid, data_hid, type_hid;
   space_hid = data_hid = type_hid = -1;
   bool retval = true;
--- a/libinterp/octave-value/ov-cx-sparse.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-cx-sparse.cc	Mon May 02 08:53:18 2016 -0700
@@ -223,17 +223,17 @@
 
 bool
 octave_sparse_complex_matrix::save_binary (std::ostream& os,
-                                           bool&save_as_floats)
+                                           bool& save_as_floats)
 {
-  dim_vector d = this->dims ();
-  if (d.length () < 1)
+  dim_vector dv = this->dims ();
+  if (dv.ndims () < 1)
     return false;
 
   // Ensure that additional memory is deallocated
   matrix.maybe_compress ();
 
-  int nr = d(0);
-  int nc = d(1);
+  int nr = dv(0);
+  int nc = dv(1);
   int nz = nnz ();
 
   int32_t itmp;
--- a/libinterp/octave-value/ov-flt-cx-mat.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-flt-cx-mat.cc	Mon May 02 08:53:18 2016 -0700
@@ -289,15 +289,15 @@
 bool
 octave_float_complex_matrix::save_ascii (std::ostream& os)
 {
-  dim_vector d = dims ();
-  if (d.length () > 2)
+  dim_vector dv = dims ();
+  if (dv.ndims () > 2)
     {
       FloatComplexNDArray tmp = complex_array_value ();
 
-      os << "# ndims: " << d.length () << "\n";
+      os << "# ndims: " << dv.ndims () << "\n";
 
-      for (int i = 0; i < d.length (); i++)
-        os << " " << d(i);
+      for (int i = 0; i < dv.ndims (); i++)
+        os << " " << dv(i);
 
       os << "\n" << tmp;
     }
@@ -384,22 +384,22 @@
 bool
 octave_float_complex_matrix::save_binary (std::ostream& os, bool&)
 {
-  dim_vector d = dims ();
-  if (d.length () < 1)
+  dim_vector dv = dims ();
+  if (dv.ndims () < 1)
     return false;
 
   // Use negative value for ndims to differentiate with old format!!
-  int32_t tmp = - d.length ();
+  int32_t tmp = - dv.ndims ();
   os.write (reinterpret_cast<char *> (&tmp), 4);
-  for (int i = 0; i < d.length (); i++)
+  for (int i = 0; i < dv.ndims (); i++)
     {
-      tmp = d(i);
+      tmp = dv(i);
       os.write (reinterpret_cast<char *> (&tmp), 4);
     }
 
   FloatComplexNDArray m = complex_array_value ();
   save_type st = LS_FLOAT;
-  if (d.numel () > 4096) // FIXME: make this configurable.
+  if (dv.numel () > 4096) // FIXME: make this configurable.
     {
       float max_val, min_val;
       if (m.all_integers (max_val, min_val))
@@ -407,7 +407,8 @@
     }
 
   const FloatComplex *mtmp = m.data ();
-  write_floats (os, reinterpret_cast<const float *> (mtmp), st, 2 * d.numel ());
+  write_floats (os, reinterpret_cast<const float *> (mtmp), st,
+                2 * dv.numel ());
 
   return true;
 }
@@ -499,7 +500,7 @@
   if (empty)
     return (empty > 0);
 
-  int rank = dv.length ();
+  int rank = dv.ndims ();
   hid_t space_hid, data_hid, type_hid;
   space_hid = data_hid = type_hid = -1;
   FloatComplexNDArray m = complex_array_value ();
--- a/libinterp/octave-value/ov-flt-re-mat.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-flt-re-mat.cc	Mon May 02 08:53:18 2016 -0700
@@ -310,16 +310,16 @@
 bool
 octave_float_matrix::save_ascii (std::ostream& os)
 {
-  dim_vector d = dims ();
+  dim_vector dv = dims ();
 
-  if (d.length () > 2)
+  if (dv.ndims () > 2)
     {
       FloatNDArray tmp = float_array_value ();
 
-      os << "# ndims: " << d.length () << "\n";
+      os << "# ndims: " << dv.ndims () << "\n";
 
-      for (int i=0; i < d.length (); i++)
-        os << " " << d(i);
+      for (int i=0; i < dv.ndims (); i++)
+        os << " " << dv(i);
 
       os << "\n" << tmp;
     }
@@ -406,23 +406,22 @@
 bool
 octave_float_matrix::save_binary (std::ostream& os, bool&)
 {
-
-  dim_vector d = dims ();
-  if (d.length () < 1)
+  dim_vector dv = dims ();
+  if (dv.ndims () < 1)
     return false;
 
   // Use negative value for ndims to differentiate with old format!!
-  int32_t tmp = - d.length ();
+  int32_t tmp = - dv.ndims ();
   os.write (reinterpret_cast<char *> (&tmp), 4);
-  for (int i = 0; i < d.length (); i++)
+  for (int i = 0; i < dv.ndims (); i++)
     {
-      tmp = d(i);
+      tmp = dv(i);
       os.write (reinterpret_cast<char *> (&tmp), 4);
     }
 
   FloatNDArray m = float_array_value ();
   save_type st = LS_FLOAT;
-  if (d.numel () > 8192) // FIXME: make this configurable.
+  if (dv.numel () > 8192) // FIXME: make this configurable.
     {
       float max_val, min_val;
       if (m.all_integers (max_val, min_val))
@@ -430,7 +429,7 @@
     }
 
   const float *mtmp = m.data ();
-  write_floats (os, mtmp, st, d.numel ());
+  write_floats (os, mtmp, st, dv.numel ());
 
   return true;
 }
@@ -521,7 +520,7 @@
   if (empty)
     return (empty > 0);
 
-  int rank = dv.length ();
+  int rank = dv.ndims ();
   hid_t space_hid, data_hid;
   space_hid = data_hid = -1;
   FloatNDArray m = array_value ();
--- a/libinterp/octave-value/ov-intx.h	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-intx.h	Mon May 02 08:53:18 2016 -0700
@@ -145,7 +145,7 @@
   {
     Matrix retval;
     dim_vector dv = dims ();
-    if (dv.length () > 2)
+    if (dv.ndims () > 2)
       error ("invalid conversion of %s to Matrix", type_name ().c_str ());
 
     retval = Matrix (dv(0), dv(1));
@@ -162,7 +162,7 @@
   {
     FloatMatrix retval;
     dim_vector dv = dims ();
-    if (dv.length () > 2)
+    if (dv.ndims () > 2)
       error ("invalid conversion of %s to FloatMatrix", type_name ().c_str ());
 
     retval = FloatMatrix (dv(0), dv(1));
@@ -179,7 +179,7 @@
   {
     ComplexMatrix retval;
     dim_vector dv = dims ();
-    if (dv.length () > 2)
+    if (dv.ndims () > 2)
       error ("invalid conversion of %s to Matrix", type_name ().c_str ());
 
     retval = ComplexMatrix (dv(0), dv(1));
@@ -196,7 +196,7 @@
   {
     FloatComplexMatrix retval;
     dim_vector dv = dims ();
-    if (dv.length () > 2)
+    if (dv.ndims () > 2)
       error ("invalid conversion of %s to FloatMatrix", type_name ().c_str ());
 
     retval = FloatComplexMatrix (dv(0), dv(1));
--- a/libinterp/octave-value/ov-java.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-java.cc	Mon May 02 08:53:18 2016 -0700
@@ -937,7 +937,7 @@
   while (jcls && jni_env->CallBooleanMethod (jcls, isArray_ID))
     {
       int len = (jobj ? jni_env->GetArrayLength (jobj) : 0);
-      if (idx >= dv.length ())
+      if (idx >= dv.ndims ())
         dv.resize (idx+1);
       dv(idx) = len;
       jcls = reinterpret_cast<jclass> (jni_env->CallObjectMethod (jcls, getComponentType_ID));
@@ -1219,7 +1219,7 @@
               dim_vector dims;
               dims.resize (jni_env->GetArrayLength (jintArray (iv)));
 
-              for (int i = 0; i < dims.length (); i++)
+              for (int i = 0; i < dims.ndims (); i++)
                 dims(i) = iv_data[i];
 
               jni_env->ReleaseIntArrayElements (jintArray (iv), iv_data, 0);
@@ -1546,10 +1546,10 @@
     {
       jclass_ref mcls (jni_env, find_octave_class (jni_env, "org/octave/Matrix"));
       dim_vector dims = val.dims ();
-      jintArray_ref iv (jni_env, jni_env->NewIntArray (dims.length ()));
+      jintArray_ref iv (jni_env, jni_env->NewIntArray (dims.ndims ()));
       jint *iv_data = jni_env->GetIntArrayElements (jintArray (iv), 0);
 
-      for (int i = 0; i < dims.length (); i++)
+      for (int i = 0; i < dims.ndims (); i++)
         iv_data[i] = dims(i);
 
       jni_env->ReleaseIntArrayElements (jintArray (iv), iv_data, 0);
--- a/libinterp/octave-value/ov-lazy-idx.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-lazy-idx.cc	Mon May 02 08:53:18 2016 -0700
@@ -105,7 +105,7 @@
 {
   const dim_vector odims = index.orig_dimensions ();
   // index_vector can employ a more efficient sorting algorithm.
-  if (mode == ASCENDING && odims.length () == 2
+  if (mode == ASCENDING && odims.ndims () == 2
       && (dim >= 0 && dim <= 1) && odims(1-dim) == 1)
     return index_vector ().sorted ();
   else
@@ -119,7 +119,7 @@
 {
   const dim_vector odims = index.orig_dimensions ();
   // index_vector can employ a more efficient sorting algorithm.
-  if (mode == ASCENDING && odims.length () == 2
+  if (mode == ASCENDING && odims.ndims () == 2
       && (dim >= 0 && dim <= 1) && odims(1-dim) == 1)
     return index_vector ().sorted (sidx);
   else
--- a/libinterp/octave-value/ov-re-mat.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-re-mat.cc	Mon May 02 08:53:18 2016 -0700
@@ -412,16 +412,16 @@
 bool
 octave_matrix::save_ascii (std::ostream& os)
 {
-  dim_vector d = dims ();
+  dim_vector dv = dims ();
 
-  if (d.length () > 2)
+  if (dv.ndims () > 2)
     {
       NDArray tmp = array_value ();
 
-      os << "# ndims: " << d.length () << "\n";
+      os << "# ndims: " << dv.ndims () << "\n";
 
-      for (int i=0; i < d.length (); i++)
-        os << " " << d(i);
+      for (int i=0; i < dv.ndims (); i++)
+        os << " " << dv(i);
 
       os << "\n" << tmp;
     }
@@ -509,16 +509,16 @@
 octave_matrix::save_binary (std::ostream& os, bool& save_as_floats)
 {
 
-  dim_vector d = dims ();
-  if (d.length () < 1)
+  dim_vector dv = dims ();
+  if (dv.ndims () < 1)
     return false;
 
   // Use negative value for ndims to differentiate with old format!!
-  int32_t tmp = - d.length ();
+  int32_t tmp = - dv.ndims ();
   os.write (reinterpret_cast<char *> (&tmp), 4);
-  for (int i = 0; i < d.length (); i++)
+  for (int i = 0; i < dv.ndims (); i++)
     {
-      tmp = d(i);
+      tmp = dv(i);
       os.write (reinterpret_cast<char *> (&tmp), 4);
     }
 
@@ -534,7 +534,7 @@
       else
         st = LS_FLOAT;
     }
-  else if (d.numel () > 8192) // FIXME: make this configurable.
+  else if (dv.numel () > 8192) // FIXME: make this configurable.
     {
       double max_val, min_val;
       if (m.all_integers (max_val, min_val))
@@ -542,7 +542,7 @@
     }
 
   const double *mtmp = m.data ();
-  write_doubles (os, mtmp, st, d.numel ());
+  write_doubles (os, mtmp, st, dv.numel ());
 
   return true;
 }
@@ -633,7 +633,7 @@
   if (empty)
     return (empty > 0);
 
-  int rank = dv.length ();
+  int rank = dv.ndims ();
   hid_t space_hid, data_hid;
   space_hid = data_hid = -1;
   NDArray m = array_value ();
--- a/libinterp/octave-value/ov-re-sparse.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-re-sparse.cc	Mon May 02 08:53:18 2016 -0700
@@ -247,17 +247,17 @@
 }
 
 bool
-octave_sparse_matrix::save_binary (std::ostream& os, bool&save_as_floats)
+octave_sparse_matrix::save_binary (std::ostream& os, bool& save_as_floats)
 {
-  dim_vector d = this->dims ();
-  if (d.length () < 1)
+  dim_vector dv = this->dims ();
+  if (dv.ndims () < 1)
     return false;
 
   // Ensure that additional memory is deallocated
   matrix.maybe_compress ();
 
-  int nr = d(0);
-  int nc = d(1);
+  int nr = dv(0);
+  int nc = dv(1);
   int nz = nnz ();
 
   int32_t itmp;
--- a/libinterp/octave-value/ov-str-mat.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-str-mat.cc	Mon May 02 08:53:18 2016 -0700
@@ -283,15 +283,15 @@
 bool
 octave_char_matrix_str::save_ascii (std::ostream& os)
 {
-  dim_vector d = dims ();
-  if (d.length () > 2)
+  dim_vector dv = dims ();
+  if (dv.ndims () > 2)
     {
       charNDArray tmp = char_array_value ();
-      os << "# ndims: " << d.length () << "\n";
-      for (int i=0; i < d.length (); i++)
-        os << " " << d(i);
+      os << "# ndims: " << dv.ndims () << "\n";
+      for (int i=0; i < dv.ndims (); i++)
+        os << " " << dv(i);
       os << "\n";
-      os.write (tmp.fortran_vec (), d.numel ());
+      os.write (tmp.fortran_vec (), dv.numel ());
       os << "\n";
     }
   else
@@ -435,21 +435,21 @@
 octave_char_matrix_str::save_binary (std::ostream& os,
                                      bool& /* save_as_floats */)
 {
-  dim_vector d = dims ();
-  if (d.length () < 1)
+  dim_vector dv = dims ();
+  if (dv.ndims () < 1)
     return false;
 
   // Use negative value for ndims to differentiate with old format!!
-  int32_t tmp = - d.length ();
+  int32_t tmp = - dv.ndims ();
   os.write (reinterpret_cast<char *> (&tmp), 4);
-  for (int i=0; i < d.length (); i++)
+  for (int i=0; i < dv.ndims (); i++)
     {
-      tmp = d(i);
+      tmp = dv(i);
       os.write (reinterpret_cast<char *> (&tmp), 4);
     }
 
   charNDArray m = char_array_value ();
-  os.write (m.fortran_vec (), d.numel ());
+  os.write (m.fortran_vec (), dv.numel ());
   return true;
 }
 
@@ -540,7 +540,7 @@
   if (empty)
     return (empty > 0);
 
-  int rank = dv.length ();
+  int rank = dv.ndims ();
   hid_t space_hid, data_hid;
   space_hid = data_hid = -1;
   charNDArray m = char_array_value ();
--- a/libinterp/octave-value/ov-struct.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov-struct.cc	Mon May 02 08:53:18 2016 -0700
@@ -648,7 +648,7 @@
 static bool
 scalar (const dim_vector& dims)
 {
-  return dims.length () == 2 && dims(0) == 1 && dims(1) == 1;
+  return dims.ndims () == 2 && dims(0) == 1 && dims(1) == 1;
 }
 
 
@@ -661,9 +661,9 @@
 
   const dim_vector dv = dims ();
 
-  os << "# ndims: " << dv.length () << "\n";
-
-  for (int i = 0; i < dv.length (); i++)
+  os << "# ndims: " << dv.ndims () << "\n";
+
+  for (int i = 0; i < dv.ndims (); i++)
     os << " " << dv(i);
   os << "\n";
 
@@ -764,16 +764,16 @@
 
   octave_idx_type nf = m.nfields ();
 
-  dim_vector d = dims ();
-  if (d.length () < 1)
+  dim_vector dv = dims ();
+  if (dv.ndims () < 1)
     return false;
 
   // Use negative value for ndims
-  int32_t di = - d.length ();
+  int32_t di = - dv.ndims ();
   os.write (reinterpret_cast<char *> (&di), 4);
-  for (int i = 0; i < d.length (); i++)
+  for (int i = 0; i < dv.ndims (); i++)
     {
-      di = d(i);
+      di = dv(i);
       os.write (reinterpret_cast<char *> (&di), 4);
     }
 
@@ -1326,9 +1326,9 @@
 
   const dim_vector dv = dims ();
 
-  os << "# ndims: " << dv.length () << "\n";
-
-  for (int i = 0; i < dv.length (); i++)
+  os << "# ndims: " << dv.ndims () << "\n";
+
+  for (int i = 0; i < dv.ndims (); i++)
     os << " " << dv(i);
   os << "\n";
 
--- a/libinterp/octave-value/ov.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/octave-value/ov.cc	Mon May 02 08:53:18 2016 -0700
@@ -1383,7 +1383,7 @@
 
   const dim_vector dv = dims ();
 
-  for (int i = 0; i < dv.length (); i++)
+  for (int i = 0; i < dv.ndims (); i++)
     {
       if (dv(i) == 0)
         {
@@ -1498,7 +1498,7 @@
   retval.chop_trailing_singletons ();
   octave_idx_type nel = dv.numel ();
 
-  if (retval.length () > 2 || (retval(0) != 1 && retval(1) != 1))
+  if (retval.ndims () > 2 || (retval(0) != 1 && retval(1) != 1))
     {
       if (! force_vector_conversion)
         warn_implicit_conversion ("Octave:array-to-vector",
--- a/libinterp/parse-tree/pt-arg-list.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/parse-tree/pt-arg-list.cc	Mon May 02 08:53:18 2016 -0700
@@ -170,7 +170,7 @@
     }
 
   dim_vector dv = indexed_object->dims ();
-  int ndims = dv.length ();
+  int ndims = dv.ndims ();
 
   if (num_indices < ndims)
     {
--- a/libinterp/parse-tree/pt-mat.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/libinterp/parse-tree/pt-mat.cc	Mon May 02 08:53:18 2016 -0700
@@ -634,8 +634,8 @@
 
           dv = this_elt_dv;
         }
-      else if (all_str && dv.length () == 2
-               && this_elt_dv.length () == 2)
+      else if (all_str && dv.ndims () == 2
+               && this_elt_dv.ndims () == 2)
         {
           // FIXME: this is Octave's specialty. Character matrices allow
           // rows of unequal length.
@@ -1064,7 +1064,7 @@
           // Now, extract the values from the individual elements and
           // insert them in the result matrix.
 
-          int dv_len = dv.length ();
+          int dv_len = dv.ndims ();
           octave_idx_type ntmp = dv_len > 1 ? dv_len : 2;
           Array<octave_idx_type> ra_idx (dim_vector (ntmp, 1), 0);
 
--- a/liboctave/array/Array-util.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/array/Array-util.cc	Mon May 02 08:53:18 2016 -0700
@@ -38,7 +38,7 @@
 
   int n = ra_idx.numel ();
 
-  if (n == dimensions.length ())
+  if (n == dimensions.ndims ())
     {
       for (int i = 0; i < n; i++)
         {
@@ -62,7 +62,7 @@
   ra_idx(start_dimension)++;
 
   int n = ra_idx.numel () - 1;
-  int nda = dimensions.length ();
+  int nda = dimensions.ndims ();
 
   for (int i = start_dimension; i < n; i++)
     {
@@ -116,12 +116,10 @@
 {
   bool retval = true;
 
-  int n = dim.length ();
+  int n = dim.ndims ();
 
   if (n == 0)
-    {
-      retval = false;
-    }
+    retval = false;
   else
     {
       for (int i = 0; i < n; i++)
@@ -141,7 +139,7 @@
 is_vector (const dim_vector& dim)
 {
   int m = 0;
-  int n = dim.length ();
+  int n = dim.ndims ();
 
   if (n == 0)
     m = 2;
@@ -265,7 +263,7 @@
 
   int n = ra_idx.numel ();
 
-  assert (n == dimensions.length ());
+  assert (n == dimensions.ndims ());
 
   retval.resize (n);
 
@@ -281,7 +279,7 @@
 bool
 vector_equivalent (const dim_vector& dv)
 {
-  int n = dv.length ();
+  int n = dv.ndims ();
 
   bool found_first = false;
 
@@ -345,7 +343,7 @@
 
   octave_idx_type idx_n = ra_idx.numel ();
 
-  int n = frozen_lengths.length ();
+  int n = frozen_lengths.ndims ();
 
   assert (idx_n == n);
 
@@ -397,7 +395,7 @@
 {
   Array<octave_idx_type> retval;
 
-  int n_dims = dims.length ();
+  int n_dims = dims.ndims ();
 
   retval.resize (dim_vector (n_dims, 1));
 
@@ -430,7 +428,7 @@
 zero_dims_inquire (const Array<idx_vector>& ia, const dim_vector& rhdv)
 {
   int ial = ia.numel ();
-  int rhdvl = rhdv.length ();
+  int rhdvl = rhdv.ndims ();
   dim_vector rdv = dim_vector::alloc (ial);
   bool *scalar = new bool [ial];
   bool *colon = new bool [ial];
@@ -468,7 +466,7 @@
     {
       dim_vector rhdv0 = rhdv;
       rhdv0.chop_all_singletons ();
-      int rhdv0l = rhdv0.length ();
+      int rhdv0l = rhdv0.ndims ();
       for (int i = 0, j = 0; i < ial; i++)
         {
           if (scalar[i]) continue;
@@ -490,12 +488,12 @@
   bool icol = i.is_colon ();
   bool jcol = j.is_colon ();
   dim_vector rdv;
-  if (icol && jcol && rhdv.length () == 2)
+  if (icol && jcol && rhdv.ndims () == 2)
     {
       rdv(0) = rhdv(0);
       rdv(1) = rhdv(1);
     }
-  else if (rhdv.length () == 2
+  else if (rhdv.ndims () == 2
            && ! i.is_scalar () && ! j.is_scalar ())
     {
       rdv(0) = icol ? rhdv(0) : i.extent (0);
@@ -621,7 +619,7 @@
 ind2sub (const dim_vector& dv, const idx_vector& idx)
 {
   octave_idx_type len = idx.length (0);
-  octave_idx_type n = dv.length ();
+  octave_idx_type n = dv.ndims ();
   Array<idx_vector> retval (dim_vector (n, 1));
   octave_idx_type numel = dv.numel ();
 
--- a/liboctave/array/Array.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/array/Array.cc	Mon May 02 08:53:18 2016 -0700
@@ -318,7 +318,7 @@
 public:
   rec_permute_helper (const dim_vector& dv, const Array<octave_idx_type>& perm)
 
-    : n (dv.length ()), top (0), dim (new octave_idx_type [2*n]),
+    : n (dv.ndims ()), top (0), dim (new octave_idx_type [2*n]),
       stride (dim + n), use_blk (false)
   {
     assert (n == perm.numel ());
@@ -456,7 +456,7 @@
 
   int perm_vec_len = perm_vec_arg.numel ();
 
-  if (perm_vec_len < dv.length ())
+  if (perm_vec_len < dv.ndims ())
     (*current_liboctave_error_handler)
       ("%s: invalid permutation vector", inv ? "ipermute" : "permute");
 
@@ -535,7 +535,7 @@
     : n (ia.numel ()), top (0), dim (new octave_idx_type [2*n]),
       cdim (dim + n), idx (new idx_vector [n])
   {
-    assert (n > 0 && (dv.length () == std::max (n, 2)));
+    assert (n > 0 && (dv.ndims () == std::max (n, 2)));
 
     dim[0] = dv(0);
     cdim[0] = 1;
@@ -651,8 +651,8 @@
   rec_resize_helper (const dim_vector& ndv, const dim_vector& odv)
     : cext (0), sext (0), dext (0), n (0)
   {
-    int l = ndv.length ();
-    assert (odv.length () == l);
+    int l = ndv.ndims ();
+    assert (odv.ndims () == l);
     octave_idx_type ld = 1;
     int i = 0;
     for (; i < l-1 && ndv(i) == odv(i); i++) ld *= ndv(i);
@@ -1025,12 +1025,12 @@
 void
 Array<T>::resize (const dim_vector& dv, const T& rfv)
 {
-  int dvl = dv.length ();
+  int dvl = dv.ndims ();
   if (dvl == 2)
     resize2 (dv(0), dv(1), rfv);
   else if (dimensions != dv)
     {
-      if (dimensions.length () > dvl || dv.any_neg ())
+      if (dimensions.ndims () > dvl || dv.any_neg ())
         err_invalid_resize ();
 
       Array<T> tmp (dv);
@@ -1206,7 +1206,7 @@
   octave_idx_type jl = j.length (rdv(1));
   rhdv.chop_all_singletons ();
   bool match = (isfill
-                || (rhdv.length () == 2 && il == rhdv(0) && jl == rhdv(1)));
+                || (rhdv.ndims () == 2 && il == rhdv(0) && jl == rhdv(1)));
   match = match || (il == 1 && jl == rhdv(0) && rhdv(1) == 1);
 
   if (match)
@@ -1322,7 +1322,7 @@
 
       rhdv.chop_all_singletons ();
       int j = 0;
-      int rhdvl = rhdv.length ();
+      int rhdvl = rhdv.ndims ();
       for (int i = 0; i < ial; i++)
         {
           all_colons = all_colons && ia(i).is_colon_equiv (rdv(i));
@@ -1784,7 +1784,7 @@
   if (m.numel () < 1)
     return m;
 
-  if (dim >= dv.length ())
+  if (dim >= dv.ndims ())
     dv.resize (dim+1, 1);
 
   octave_idx_type ns = dv(dim);
@@ -2331,7 +2331,7 @@
     (*current_liboctave_error_handler) ("nth_element: invalid dimension");
 
   dim_vector dv = dims ();
-  if (dim >= dv.length ())
+  if (dim >= dv.ndims ())
     dv.resize (dim+1, 1);
 
   octave_idx_type ns = dv(dim);
@@ -2340,7 +2340,7 @@
 
   dv(dim) = std::min (nn, ns);
   dv.chop_trailing_singletons ();
-  dim = std::min (dv.length (), dim);
+  dim = std::min (dv.ndims (), dim);
 
   Array<T> m (dv);
 
@@ -2516,7 +2516,7 @@
 Array<T>::diag (octave_idx_type k) const
 {
   dim_vector dv = dims ();
-  octave_idx_type nd = dv.length ();
+  octave_idx_type nd = dv.ndims ();
   Array<T> d;
 
   if (nd > 2)
@@ -2683,7 +2683,7 @@
   if (retval.is_empty ())
     return retval;
 
-  int nidx = std::max (dv.length (), dim + 1);
+  int nidx = std::max (dv.ndims (), dim + 1);
   Array<idx_vector> idxa (dim_vector (nidx, 1), idx_vector::colon);
   octave_idx_type l = 0;
 
@@ -2763,7 +2763,7 @@
 {
   dim_vector a_dims = a.dims ();
 
-  int n_dims = a_dims.length ();
+  int n_dims = a_dims.ndims ();
 
   os << n_dims << "-dimensional array";
 
--- a/liboctave/array/Array.h	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/array/Array.h	Mon May 02 08:53:18 2016 -0700
@@ -278,7 +278,7 @@
   Array<T> as_column (void) const
   {
     Array<T> retval (*this);
-    if (dimensions.length () != 2 || dimensions(1) != 1)
+    if (dimensions.ndims () != 2 || dimensions(1) != 1)
       retval.dimensions = dim_vector (numel (), 1);
 
     return retval;
@@ -288,7 +288,7 @@
   Array<T> as_row (void) const
   {
     Array<T> retval (*this);
-    if (dimensions.length () != 2 || dimensions(0) != 1)
+    if (dimensions.ndims () != 2 || dimensions(0) != 1)
       retval.dimensions = dim_vector (1, numel ());
 
     return retval;
@@ -298,7 +298,7 @@
   Array<T> as_matrix (void) const
   {
     Array<T> retval (*this);
-    if (dimensions.length () != 2)
+    if (dimensions.ndims () != 2)
       retval.dimensions = dimensions.redim (2);
 
     return retval;
@@ -484,7 +484,7 @@
 
   bool is_shared (void) { return rep->count > 1; }
 
-  int ndims (void) const { return dimensions.length (); }
+  int ndims (void) const { return dimensions.ndims (); }
 
   //@{
   //! Indexing without resizing.
--- a/liboctave/array/CNDArray.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/array/CNDArray.cc	Mon May 02 08:53:18 2016 -0700
@@ -59,7 +59,7 @@
 {
   dim_vector dv = dims ();
 
-  if (dim > dv.length () || dim < 0)
+  if (dim > dv.ndims () || dim < 0)
     return ComplexNDArray ();
 
   octave_idx_type stride = 1;
@@ -90,7 +90,7 @@
 {
   dim_vector dv = dims ();
 
-  if (dim > dv.length () || dim < 0)
+  if (dim > dv.ndims () || dim < 0)
     return ComplexNDArray ();
 
   octave_idx_type stride = 1;
@@ -120,7 +120,7 @@
 ComplexNDArray::fourier2d (void) const
 {
   dim_vector dv = dims ();
-  if (dv.length () < 2)
+  if (dv.ndims () < 2)
     return ComplexNDArray ();
 
   dim_vector dv2 (dv(0), dv(1));
@@ -140,7 +140,7 @@
 ComplexNDArray::ifourier2d (void) const
 {
   dim_vector dv = dims ();
-  if (dv.length () < 2)
+  if (dv.ndims () < 2)
     return ComplexNDArray ();
 
   dim_vector dv2 (dv(0), dv(1));
@@ -160,7 +160,7 @@
 ComplexNDArray::fourierNd (void) const
 {
   dim_vector dv = dims ();
-  int rank = dv.length ();
+  int rank = dv.ndims ();
 
   const Complex *in (fortran_vec ());
   ComplexNDArray retval (dv);
@@ -175,7 +175,7 @@
 ComplexNDArray::ifourierNd (void) const
 {
   dim_vector dv = dims ();
-  int rank = dv.length ();
+  int rank = dv.ndims ();
 
   const Complex *in (fortran_vec ());
   ComplexNDArray retval (dv);
@@ -210,7 +210,7 @@
 {
   dim_vector dv = dims ();
 
-  if (dim > dv.length () || dim < 0)
+  if (dim > dv.ndims () || dim < 0)
     return ComplexNDArray ();
 
   ComplexNDArray retval (dv);
@@ -257,7 +257,7 @@
 {
   dim_vector dv = dims ();
 
-  if (dim > dv.length () || dim < 0)
+  if (dim > dv.ndims () || dim < 0)
     return ComplexNDArray ();
 
   ComplexNDArray retval (dv);
@@ -401,7 +401,7 @@
 ComplexNDArray::fourierNd (void) const
 {
   dim_vector dv = dims ();
-  int rank = dv.length ();
+  int rank = dv.ndims ();
   ComplexNDArray retval (*this);
   octave_idx_type stride = 1;
 
@@ -448,7 +448,7 @@
 ComplexNDArray::ifourierNd (void) const
 {
   dim_vector dv = dims ();
-  int rank = dv.length ();
+  int rank = dv.ndims ();
   ComplexNDArray retval (*this);
   octave_idx_type stride = 1;
 
@@ -753,13 +753,13 @@
 {
   dim_vector a_dv = a.dims ();
 
-  int n = a_dv.length ();
+  int n = a_dv.ndims ();
 
-  if (n != dimensions.length ())
+  if (n != dimensions.ndims ())
     (*current_liboctave_error_handler)
       ("Array<T>::insert: invalid indexing operation");
 
-  Array<octave_idx_type> a_ra_idx (dim_vector (a_dv.length (), 1), 0);
+  Array<octave_idx_type> a_ra_idx (dim_vector (a_dv.ndims (), 1), 0);
 
   a_ra_idx.elem (0) = r;
   a_ra_idx.elem (1) = c;
--- a/liboctave/array/CSparse.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/array/CSparse.cc	Mon May 02 08:53:18 2016 -0700
@@ -270,7 +270,7 @@
   octave_idx_type nc = dv(1);
 
 
-  if (dim >= dv.length ())
+  if (dim >= dv.ndims ())
     {
       idx_arg.resize (dim_vector (nr, nc), 0);
       return *this;
@@ -283,7 +283,7 @@
     {
       idx_arg.resize (dim_vector (nr == 0 ? 0 : 1, nc), 0);
 
-      if (nr == 0 || nc == 0 || dim >= dv.length ())
+      if (nr == 0 || nc == 0 || dim >= dv.ndims ())
         return SparseComplexMatrix (nr == 0 ? 0 : 1, nc);
 
       octave_idx_type nel = 0;
@@ -347,7 +347,7 @@
     {
       idx_arg.resize (dim_vector (nr, nc == 0 ? 0 : 1), 0);
 
-      if (nr == 0 || nc == 0 || dim >= dv.length ())
+      if (nr == 0 || nc == 0 || dim >= dv.ndims ())
         return SparseComplexMatrix (nr, nc == 0 ? 0 : 1);
 
       OCTAVE_LOCAL_BUFFER (octave_idx_type, found, nr);
@@ -427,7 +427,7 @@
   octave_idx_type nr = dv(0);
   octave_idx_type nc = dv(1);
 
-  if (dim >= dv.length ())
+  if (dim >= dv.ndims ())
     {
       idx_arg.resize (dim_vector (nr, nc), 0);
       return *this;
@@ -440,7 +440,7 @@
     {
       idx_arg.resize (dim_vector (nr == 0 ? 0 : 1, nc), 0);
 
-      if (nr == 0 || nc == 0 || dim >= dv.length ())
+      if (nr == 0 || nc == 0 || dim >= dv.ndims ())
         return SparseComplexMatrix (nr == 0 ? 0 : 1, nc);
 
       octave_idx_type nel = 0;
@@ -504,7 +504,7 @@
     {
       idx_arg.resize (dim_vector (nr, nc == 0 ? 0 : 1), 0);
 
-      if (nr == 0 || nc == 0 || dim >= dv.length ())
+      if (nr == 0 || nc == 0 || dim >= dv.ndims ())
         return SparseComplexMatrix (nr, nc == 0 ? 0 : 1);
 
       OCTAVE_LOCAL_BUFFER (octave_idx_type, found, nr);
--- a/liboctave/array/Sparse.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/array/Sparse.cc	Mon May 02 08:53:18 2016 -0700
@@ -224,7 +224,7 @@
 Sparse<T>::Sparse (const dim_vector& dv)
   : rep (0), dimensions (dv)
 {
-  if (dv.length () != 2)
+  if (dv.ndims () != 2)
     (*current_liboctave_error_handler)
       ("Sparse::Sparse (const dim_vector&): dimension mismatch");
 
@@ -637,7 +637,7 @@
 Sparse<T>::Sparse (const Array<T>& a)
   : rep (0), dimensions (a.dims ())
 {
-  if (dimensions.length () > 2)
+  if (dimensions.ndims () > 2)
     (*current_liboctave_error_handler)
       ("Sparse::Sparse (const Array<T>&): dimension mismatch");
 
@@ -696,7 +696,7 @@
 octave_idx_type
 Sparse<T>::compute_index (const Array<octave_idx_type>& ra_idx) const
 {
-  octave_idx_type n = dimensions.length ();
+  octave_idx_type n = dimensions.ndims ();
 
   if (n <= 0 || n != ra_idx.numel ())
     (*current_liboctave_error_handler)
@@ -798,13 +798,13 @@
   Sparse<T> retval;
   dim_vector dims2 = new_dims;
 
-  if (dims2.length () > 2)
+  if (dims2.ndims () > 2)
     {
       (*current_liboctave_warning_with_id_handler)
         ("Octave:reshape-smashes-dims",
          "reshape: sparse reshape to N-D array smashes dims");
 
-      for (octave_idx_type i = 2; i < dims2.length (); i++)
+      for (octave_idx_type i = 2; i < dims2.ndims (); i++)
         dims2(1) *= dims2(i);
 
       dims2.resize (2);
@@ -922,7 +922,7 @@
 void
 Sparse<T>::resize (const dim_vector& dv)
 {
-  octave_idx_type n = dv.length ();
+  octave_idx_type n = dv.ndims ();
 
   if (n != 2)
     (*current_liboctave_error_handler) ("sparse array must be 2-D");
--- a/liboctave/array/Sparse.h	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/array/Sparse.h	Mon May 02 08:53:18 2016 -0700
@@ -551,7 +551,7 @@
   // FIXME: shouldn't this be returning const octave_idx_type*?
   octave_idx_type* cidx (void) const { return rep->c; }
 
-  octave_idx_type ndims (void) const { return dimensions.length (); }
+  octave_idx_type ndims (void) const { return dimensions.ndims (); }
 
   void delete_elements (const idx_vector& i);
 
--- a/liboctave/array/dNDArray.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/array/dNDArray.cc	Mon May 02 08:53:18 2016 -0700
@@ -101,7 +101,7 @@
 {
   dim_vector dv = dims ();
 
-  if (dim > dv.length () || dim < 0)
+  if (dim > dv.ndims () || dim < 0)
     return ComplexNDArray ();
 
   octave_idx_type stride = 1;
@@ -132,7 +132,7 @@
 {
   dim_vector dv = dims ();
 
-  if (dim > dv.length () || dim < 0)
+  if (dim > dv.ndims () || dim < 0)
     return ComplexNDArray ();
 
   octave_idx_type stride = 1;
@@ -161,7 +161,7 @@
 NDArray::fourier2d (void) const
 {
   dim_vector dv = dims ();
-  if (dv.length () < 2)
+  if (dv.ndims () < 2)
     return ComplexNDArray ();
 
   dim_vector dv2 (dv(0), dv(1));
@@ -181,7 +181,7 @@
 NDArray::ifourier2d (void) const
 {
   dim_vector dv = dims ();
-  if (dv.length () < 2)
+  if (dv.ndims () < 2)
     return ComplexNDArray ();
 
   dim_vector dv2 (dv(0), dv(1));
@@ -200,7 +200,7 @@
 NDArray::fourierNd (void) const
 {
   dim_vector dv = dims ();
-  int rank = dv.length ();
+  int rank = dv.ndims ();
 
   const double *in (fortran_vec ());
   ComplexNDArray retval (dv);
@@ -215,7 +215,7 @@
 NDArray::ifourierNd (void) const
 {
   dim_vector dv = dims ();
-  int rank = dv.length ();
+  int rank = dv.ndims ();
 
   ComplexNDArray tmp (*this);
   Complex *in (tmp.fortran_vec ());
@@ -251,7 +251,7 @@
 {
   dim_vector dv = dims ();
 
-  if (dim > dv.length () || dim < 0)
+  if (dim > dv.ndims () || dim < 0)
     return ComplexNDArray ();
 
   ComplexNDArray retval (dv);
@@ -298,7 +298,7 @@
 {
   dim_vector dv = dims ();
 
-  if (dim > dv.length () || dim < 0)
+  if (dim > dv.ndims () || dim < 0)
     return ComplexNDArray ();
 
   ComplexNDArray retval (dv);
@@ -442,7 +442,7 @@
 NDArray::fourierNd (void) const
 {
   dim_vector dv = dims ();
-  int rank = dv.length ();
+  int rank = dv.ndims ();
   ComplexNDArray retval (*this);
   octave_idx_type stride = 1;
 
@@ -489,7 +489,7 @@
 NDArray::ifourierNd (void) const
 {
   dim_vector dv = dims ();
-  int rank = dv.length ();
+  int rank = dv.ndims ();
   ComplexNDArray retval (*this);
   octave_idx_type stride = 1;
 
--- a/liboctave/array/dSparse.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/array/dSparse.cc	Mon May 02 08:53:18 2016 -0700
@@ -283,7 +283,7 @@
   octave_idx_type nr = dv(0);
   octave_idx_type nc = dv(1);
 
-  if (dim >= dv.length ())
+  if (dim >= dv.ndims ())
     {
       idx_arg.resize (dim_vector (nr, nc), 0);
       return *this;
@@ -296,7 +296,7 @@
     {
       idx_arg.resize (dim_vector (nr == 0 ? 0 : 1, nc), 0);
 
-      if (nr == 0 || nc == 0 || dim >= dv.length ())
+      if (nr == 0 || nc == 0 || dim >= dv.ndims ())
         return SparseMatrix (nr == 0 ? 0 : 1, nc);
 
       octave_idx_type nel = 0;
@@ -354,7 +354,7 @@
     {
       idx_arg.resize (dim_vector (nr, nc == 0 ? 0 : 1), 0);
 
-      if (nr == 0 || nc == 0 || dim >= dv.length ())
+      if (nr == 0 || nc == 0 || dim >= dv.ndims ())
         return SparseMatrix (nr, nc == 0 ? 0 : 1);
 
       OCTAVE_LOCAL_BUFFER (octave_idx_type, found, nr);
@@ -434,7 +434,7 @@
   octave_idx_type nr = dv(0);
   octave_idx_type nc = dv(1);
 
-  if (dim >= dv.length ())
+  if (dim >= dv.ndims ())
     {
       idx_arg.resize (dim_vector (nr, nc), 0);
       return *this;
@@ -447,7 +447,7 @@
     {
       idx_arg.resize (dim_vector (nr == 0 ? 0 : 1, nc), 0);
 
-      if (nr == 0 || nc == 0 || dim >= dv.length ())
+      if (nr == 0 || nc == 0 || dim >= dv.ndims ())
         return SparseMatrix (nr == 0 ? 0 : 1, nc);
 
       octave_idx_type nel = 0;
@@ -505,7 +505,7 @@
     {
       idx_arg.resize (dim_vector (nr, nc == 0 ? 0 : 1), 0);
 
-      if (nr == 0 || nc == 0 || dim >= dv.length ())
+      if (nr == 0 || nc == 0 || dim >= dv.ndims ())
         return SparseMatrix (nr, nc == 0 ? 0 : 1);
 
       OCTAVE_LOCAL_BUFFER (octave_idx_type, found, nr);
--- a/liboctave/array/dim-vector.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/array/dim-vector.cc	Mon May 02 08:53:18 2016 -0700
@@ -71,11 +71,11 @@
 {
   std::ostringstream buf;
 
-  for (int i = 0; i < length (); i++)
+  for (int i = 0; i < ndims (); i++)
     {
       buf << elem (i);
 
-      if (i < length () - 1)
+      if (i < ndims () - 1)
         buf << sep;
     }
 
@@ -89,7 +89,7 @@
 {
   int retval = 0;
 
-  for (int i = 0; i < length (); i++)
+  for (int i = 0; i < ndims (); i++)
     if (elem (i) == 1)
       retval++;
 
@@ -101,7 +101,7 @@
 {
   octave_idx_type idx_max = dim_max ();
   octave_idx_type n = 1;
-  int n_dims = length ();
+  int n_dims = ndims ();
 
   for (int i = 0; i < n_dims; i++)
     {
@@ -124,7 +124,7 @@
 
   int k = 0;
 
-  for (int i = 0; i < length (); i++)
+  for (int i = 0; i < ndims (); i++)
     {
       if (elem (i) == 1)
         dims_changed = true;
@@ -249,7 +249,7 @@
 {
   if (concat (dvb, dim))
     return true;
-  else if (length () == 2 && dvb.length () == 2)
+  else if (ndims () == 2 && dvb.ndims () == 2)
     {
       bool e2dv = rep[0] + rep[1] == 1;
       bool e2dvb = dvb(0) + dvb(1) == 1;
@@ -272,7 +272,7 @@
 dim_vector
 dim_vector::redim (int n) const
 {
-  int n_dims = length ();
+  int n_dims = ndims ();
 
   if (n_dims == n)
     return *this;
--- a/liboctave/array/dim-vector.h	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/array/dim-vector.h	Mon May 02 08:53:18 2016 -0700
@@ -339,7 +339,7 @@
 
   void resize (int n, int fill_value = 0)
   {
-    int len = length ();
+    int len = ndims ();
 
     if (n != len)
       {
@@ -358,7 +358,7 @@
   {
     bool retval = true;
 
-    for (int i = 0; i < length (); i++)
+    for (int i = 0; i < ndims (); i++)
       {
         if (elem (i) != 0)
           {
@@ -372,20 +372,20 @@
 
   bool empty_2d (void) const
   {
-    return length () == 2 && (elem (0) == 0 || elem (1) == 0);
+    return ndims () == 2 && (elem (0) == 0 || elem (1) == 0);
   }
 
 
   bool zero_by_zero (void) const
   {
-    return length () == 2 && elem (0) == 0 && elem (1) == 0;
+    return ndims () == 2 && elem (0) == 0 && elem (1) == 0;
   }
 
   bool any_zero (void) const
   {
     bool retval = false;
 
-    for (int i = 0; i < length (); i++)
+    for (int i = 0; i < ndims (); i++)
       {
         if (elem (i) == 0)
           {
@@ -401,7 +401,7 @@
 
   bool all_ones (void) const
   {
-    return (num_ones () == length ());
+    return (num_ones () == ndims ());
   }
 
   //! Number of elements that a matrix with this dimensions would have.
@@ -413,7 +413,7 @@
 
   octave_idx_type numel (int n = 0) const
   {
-    int n_dims = length ();
+    int n_dims = ndims ();
 
     octave_idx_type retval = 1;
 
@@ -437,7 +437,7 @@
 
   bool any_neg (void) const
   {
-    int n_dims = length ();
+    int n_dims = ndims ();
     int i;
 
     for (i = 0; i < n_dims; i++)
@@ -466,7 +466,7 @@
 
   dim_vector as_column (void) const
   {
-    if (length () == 2 && elem (1) == 1)
+    if (ndims () == 2 && elem (1) == 1)
       return *this;
     else
       return dim_vector (numel (), 1);
@@ -474,7 +474,7 @@
 
   dim_vector as_row (void) const
   {
-    if (length () == 2 && elem (0) == 1)
+    if (ndims () == 2 && elem (0) == 1)
       return *this;
     else
       return dim_vector (1, numel ());
@@ -482,12 +482,12 @@
 
   bool is_vector (void) const
   {
-    return (length () == 2 && (elem (0) == 1 || elem (1) == 1));
+    return (ndims () == 2 && (elem (0) == 1 || elem (1) == 1));
   }
 
   int first_non_singleton (int def = 0) const
   {
-    for (int i = 0; i < length (); i++)
+    for (int i = 0; i < ndims (); i++)
       {
         if (elem (i) != 1)
           return i;
@@ -501,7 +501,7 @@
   octave_idx_type compute_index (const octave_idx_type *idx) const
   {
     octave_idx_type k = 0;
-    for (int i = length () - 1; i >= 0; i--)
+    for (int i = ndims () - 1; i >= 0; i--)
       k = rep[i] * k + idx[i];
 
     return k;
@@ -527,7 +527,7 @@
   int increment_index (octave_idx_type *idx, int start = 0) const
   {
     int i;
-    for (i = start; i < length (); i++)
+    for (i = start; i < ndims (); i++)
       {
         if (++(*idx) == rep[i])
           *idx++ = 0;
@@ -541,7 +541,7 @@
 
   dim_vector cumulative (void) const
   {
-    int nd = length ();
+    int nd = ndims ();
     dim_vector retval = alloc (nd);
 
     octave_idx_type k = 1;
@@ -558,7 +558,7 @@
   {
     octave_idx_type k = idx[0];
 
-    for (int i = 1; i < length (); i++)
+    for (int i = 1; i < ndims (); i++)
       k += rep[i-1] * idx[i];
 
     return k;
@@ -577,8 +577,8 @@
 
   bool retval = true;
 
-  int a_len = a.length ();
-  int b_len = b.length ();
+  int a_len = a.ndims ();
+  int b_len = b.ndims ();
 
   if (a_len != b_len)
     retval = false;
--- a/liboctave/array/fCNDArray.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/array/fCNDArray.cc	Mon May 02 08:53:18 2016 -0700
@@ -59,7 +59,7 @@
 {
   dim_vector dv = dims ();
 
-  if (dim > dv.length () || dim < 0)
+  if (dim > dv.ndims () || dim < 0)
     return FloatComplexNDArray ();
 
   octave_idx_type stride = 1;
@@ -90,7 +90,7 @@
 {
   dim_vector dv = dims ();
 
-  if (dim > dv.length () || dim < 0)
+  if (dim > dv.ndims () || dim < 0)
     return FloatComplexNDArray ();
 
   octave_idx_type stride = 1;
@@ -120,7 +120,7 @@
 FloatComplexNDArray::fourier2d (void) const
 {
   dim_vector dv = dims ();
-  if (dv.length () < 2)
+  if (dv.ndims () < 2)
     return FloatComplexNDArray ();
 
   dim_vector dv2 (dv(0), dv(1));
@@ -140,7 +140,7 @@
 FloatComplexNDArray::ifourier2d (void) const
 {
   dim_vector dv = dims ();
-  if (dv.length () < 2)
+  if (dv.ndims () < 2)
     return FloatComplexNDArray ();
 
   dim_vector dv2 (dv(0), dv(1));
@@ -160,7 +160,7 @@
 FloatComplexNDArray::fourierNd (void) const
 {
   dim_vector dv = dims ();
-  int rank = dv.length ();
+  int rank = dv.ndims ();
 
   const FloatComplex *in (fortran_vec ());
   FloatComplexNDArray retval (dv);
@@ -175,7 +175,7 @@
 FloatComplexNDArray::ifourierNd (void) const
 {
   dim_vector dv = dims ();
-  int rank = dv.length ();
+  int rank = dv.ndims ();
 
   const FloatComplex *in (fortran_vec ());
   FloatComplexNDArray retval (dv);
@@ -207,7 +207,7 @@
 {
   dim_vector dv = dims ();
 
-  if (dim > dv.length () || dim < 0)
+  if (dim > dv.ndims () || dim < 0)
     return FloatComplexNDArray ();
 
   FloatComplexNDArray retval (dv);
@@ -254,7 +254,7 @@
 {
   dim_vector dv = dims ();
 
-  if (dim > dv.length () || dim < 0)
+  if (dim > dv.ndims () || dim < 0)
     return FloatComplexNDArray ();
 
   FloatComplexNDArray retval (dv);
@@ -398,7 +398,7 @@
 FloatComplexNDArray::fourierNd (void) const
 {
   dim_vector dv = dims ();
-  int rank = dv.length ();
+  int rank = dv.ndims ();
   FloatComplexNDArray retval (*this);
   octave_idx_type stride = 1;
 
@@ -445,7 +445,7 @@
 FloatComplexNDArray::ifourierNd (void) const
 {
   dim_vector dv = dims ();
-  int rank = dv.length ();
+  int rank = dv.ndims ();
   FloatComplexNDArray retval (*this);
   octave_idx_type stride = 1;
 
@@ -764,11 +764,11 @@
 {
   dim_vector a_dv = a.dims ();
 
-  int n = a_dv.length ();
+  int n = a_dv.ndims ();
 
-  if (n == dimensions.length ())
+  if (n == dimensions.ndims ())
     {
-      Array<octave_idx_type> a_ra_idx (dim_vector (a_dv.length (), 1), 0);
+      Array<octave_idx_type> a_ra_idx (dim_vector (a_dv.ndims (), 1), 0);
 
       a_ra_idx.elem (0) = r;
       a_ra_idx.elem (1) = c;
--- a/liboctave/array/fNDArray.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/array/fNDArray.cc	Mon May 02 08:53:18 2016 -0700
@@ -59,7 +59,7 @@
 {
   dim_vector dv = dims ();
 
-  if (dim > dv.length () || dim < 0)
+  if (dim > dv.ndims () || dim < 0)
     return FloatComplexNDArray ();
 
   octave_idx_type stride = 1;
@@ -90,7 +90,7 @@
 {
   dim_vector dv = dims ();
 
-  if (dim > dv.length () || dim < 0)
+  if (dim > dv.ndims () || dim < 0)
     return FloatComplexNDArray ();
 
   octave_idx_type stride = 1;
@@ -119,7 +119,7 @@
 FloatNDArray::fourier2d (void) const
 {
   dim_vector dv = dims ();
-  if (dv.length () < 2)
+  if (dv.ndims () < 2)
     return FloatComplexNDArray ();
 
   dim_vector dv2 (dv(0), dv(1));
@@ -139,7 +139,7 @@
 FloatNDArray::ifourier2d (void) const
 {
   dim_vector dv = dims ();
-  if (dv.length () < 2)
+  if (dv.ndims () < 2)
     return FloatComplexNDArray ();
 
   dim_vector dv2 (dv(0), dv(1));
@@ -158,7 +158,7 @@
 FloatNDArray::fourierNd (void) const
 {
   dim_vector dv = dims ();
-  int rank = dv.length ();
+  int rank = dv.ndims ();
 
   const float *in (fortran_vec ());
   FloatComplexNDArray retval (dv);
@@ -173,7 +173,7 @@
 FloatNDArray::ifourierNd (void) const
 {
   dim_vector dv = dims ();
-  int rank = dv.length ();
+  int rank = dv.ndims ();
 
   FloatComplexNDArray tmp (*this);
   FloatComplex *in (tmp.fortran_vec ());
@@ -211,7 +211,7 @@
 {
   dim_vector dv = dims ();
 
-  if (dim > dv.length () || dim < 0)
+  if (dim > dv.ndims () || dim < 0)
     return FloatComplexNDArray ();
 
   FloatComplexNDArray retval (dv);
@@ -258,7 +258,7 @@
 {
   dim_vector dv = dims ();
 
-  if (dim > dv.length () || dim < 0)
+  if (dim > dv.ndims () || dim < 0)
     return FloatComplexNDArray ();
 
   FloatComplexNDArray retval (dv);
@@ -402,7 +402,7 @@
 FloatNDArray::fourierNd (void) const
 {
   dim_vector dv = dims ();
-  int rank = dv.length ();
+  int rank = dv.ndims ();
   FloatComplexNDArray retval (*this);
   octave_idx_type stride = 1;
 
@@ -449,7 +449,7 @@
 FloatNDArray::ifourierNd (void) const
 {
   dim_vector dv = dims ();
-  int rank = dv.length ();
+  int rank = dv.ndims ();
   FloatComplexNDArray retval (*this);
   octave_idx_type stride = 1;
 
--- a/liboctave/array/idx-vector.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/array/idx-vector.cc	Mon May 02 08:53:18 2016 -0700
@@ -391,7 +391,7 @@
   const dim_vector dv = bnda.dims ();
 
   if (! dv.all_zero ())
-    orig_dims = ((dv.length () == 2 && dv(0) == 1)
+    orig_dims = ((dv.ndims () == 2 && dv(0) == 1)
                  ? dim_vector (1, len) : dim_vector (len, 1));
 
   if (len != 0)
@@ -417,7 +417,7 @@
   const dim_vector dv = bnda.dims ();
 
   if (! dv.all_zero ())
-    orig_dims = ((dv.length () == 2 && dv(0) == 1)
+    orig_dims = ((dv.ndims () == 2 && dv(0) == 1)
                  ? dim_vector (1, len) : dim_vector (len, 1));
 
   if (len != 0)
@@ -485,7 +485,7 @@
           octave_idx_type new_len = std::unique (new_data, new_data + len)
                                     - new_data;
           new_rep->len = new_len;
-          if (new_rep->orig_dims.length () == 2 && new_rep->orig_dims(0) == 1)
+          if (new_rep->orig_dims.ndims () == 2 && new_rep->orig_dims(0) == 1)
             new_rep->orig_dims = dim_vector (1, new_len);
           else
             new_rep->orig_dims = dim_vector (new_len, 1);
@@ -503,7 +503,7 @@
         new_len += has[i];
 
       new_rep->len = new_len;
-      if (new_rep->orig_dims.length () == 2 && new_rep->orig_dims(0) == 1)
+      if (new_rep->orig_dims.ndims () == 2 && new_rep->orig_dims(0) == 1)
         new_rep->orig_dims = dim_vector (1, new_len);
       else
         new_rep->orig_dims = dim_vector (new_len, 1);
@@ -661,7 +661,7 @@
   const dim_vector dv = bnda.dims ();
 
   if (! dv.all_zero ())
-    orig_dims = ((dv.length () == 2 && dv(0) == 1)
+    orig_dims = ((dv.ndims () == 2 && dv(0) == 1)
                  ? dim_vector (1, len) : dim_vector (len, 1));
 
   aowner = new Array<bool> (bnda);
--- a/liboctave/numeric/bsxfun.h	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/numeric/bsxfun.h	Mon May 02 08:53:18 2016 -0700
@@ -38,7 +38,7 @@
 is_valid_bsxfun (const std::string& name, const dim_vector& dx,
                  const dim_vector& dy)
 {
-  for (int i = 0; i < std::min (dx.length (), dy.length ()); i++)
+  for (int i = 0; i < std::min (dx.ndims (), dy.ndims ()); i++)
     {
       octave_idx_type xk = dx(i);
       octave_idx_type yk = dy(i);
@@ -62,8 +62,8 @@
 is_valid_inplace_bsxfun (const std::string& name, const dim_vector& dr,
                          const dim_vector& dx)
 {
-  octave_idx_type drl = dr.length ();
-  octave_idx_type dxl = dx.length ();
+  octave_idx_type drl = dr.ndims ();
+  octave_idx_type dxl = dx.ndims ();
   if (drl < dxl)
     return false;
 
--- a/liboctave/numeric/oct-fftw.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/numeric/oct-fftw.cc	Mon May 02 08:53:18 2016 -0700
@@ -798,7 +798,7 @@
 {
   size_t nc = dv(0);
   size_t nr = dv(1);
-  size_t np = (dv.length () > 2 ? dv.numel () / nc / nr : 1);
+  size_t np = (dv.ndims () > 2 ? dv.numel () / nc / nr : 1);
   size_t nrp = nr * np;
   T *ptr1, *ptr2;
 
@@ -836,7 +836,7 @@
   size_t kstep = dv(0);
   size_t nel = dv.numel ();
 
-  for (int inner = 2; inner < dv.length (); inner++)
+  for (int inner = 2; inner < dv.ndims (); inner++)
     {
       size_t jmax = jstart * dv(inner);
       for (size_t i = 0; i < nel; i+=jmax)
--- a/liboctave/operators/mx-inlines.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/operators/mx-inlines.cc	Mon May 02 08:53:18 2016 -0700
@@ -1158,7 +1158,7 @@
                     octave_idx_type& l, octave_idx_type& n,
                     octave_idx_type& u)
 {
-  octave_idx_type ndims = dims.length ();
+  octave_idx_type ndims = dims.ndims ();
   if (dim >= ndims)
     {
       l = dims.numel ();
@@ -1192,13 +1192,13 @@
   octave_idx_type l, n, u;
   dim_vector dims = src.dims ();
   // M*b inconsistency: sum ([]) = 0 etc.
-  if (dims.length () == 2 && dims(0) == 0 && dims(1) == 0)
+  if (dims.ndims () == 2 && dims(0) == 0 && dims(1) == 0)
     dims(1) = 1;
 
   get_extent_triplet (dims, dim, l, n, u);
 
   // Reduction operation reduces the array size.
-  if (dim < dims.length ()) dims(dim) = 1;
+  if (dim < dims.ndims ()) dims(dim) = 1;
   dims.chop_trailing_singletons ();
 
   Array<R> ret (dims);
@@ -1235,7 +1235,7 @@
   get_extent_triplet (dims, dim, l, n, u);
 
   // If the dimension is zero, we don't do anything.
-  if (dim < dims.length () && dims(dim) != 0) dims(dim) = 1;
+  if (dim < dims.ndims () && dims(dim) != 0) dims(dim) = 1;
   dims.chop_trailing_singletons ();
 
   Array<R> ret (dims);
@@ -1255,7 +1255,7 @@
   get_extent_triplet (dims, dim, l, n, u);
 
   // If the dimension is zero, we don't do anything.
-  if (dim < dims.length () && dims(dim) != 0) dims(dim) = 1;
+  if (dim < dims.ndims () && dims(dim) != 0) dims(dim) = 1;
   dims.chop_trailing_singletons ();
 
   Array<R> ret (dims);
@@ -1316,7 +1316,7 @@
   dim_vector dims = src.dims ();
 
   get_extent_triplet (dims, dim, l, n, u);
-  if (dim >= dims.length ())
+  if (dim >= dims.ndims ())
     dims.resize (dim+1, 1);
 
   if (dims(dim) <= order)
--- a/liboctave/util/lo-array-errwarn.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/util/lo-array-errwarn.cc	Mon May 02 08:53:18 2016 -0700
@@ -231,7 +231,7 @@
   {
     std::string expl;
 
-    if (nd >= size.length ())   // if not an index slice
+    if (nd >= size.ndims ())   // if not an index slice
       {
         if (var != "")
           expl = "but " + var + " has size ";
--- a/liboctave/util/lo-array-gripes.cc	Fri Apr 29 16:40:38 2016 -0400
+++ b/liboctave/util/lo-array-gripes.cc	Mon May 02 08:53:18 2016 -0700
@@ -195,7 +195,7 @@
   {
     std::string expl;
 
-    if (nd >= size.length ())   // if not an index slice
+    if (nd >= size.ndims ())   // if not an index slice
       {
         if (var != "")
           expl = "but " + var + " has size ";