diff liboctave/Sparse.cc @ 5604:2857357f9d3c

[project @ 2006-01-31 18:22:59 by jwe]
author jwe
date Tue, 31 Jan 2006 18:23:00 +0000
parents 2c66c36d2698
children 512d0d11ae39
line wrap: on
line diff
--- a/liboctave/Sparse.cc	Tue Jan 31 11:57:47 2006 +0000
+++ b/liboctave/Sparse.cc	Tue Jan 31 18:23:00 2006 +0000
@@ -50,7 +50,7 @@
 {
   octave_idx_type i;
 
-  if (nnz > 0)
+  if (nzmx > 0)
     {
       for (i = c[_c]; i < c[_c + 1]; i++)
 	if (r[i] == _r)
@@ -60,7 +60,7 @@
 
       // Ok, If we've gotten here, we're in trouble.. Have to create a 
       // new element in the sparse array. This' gonna be slow!!!
-      if (c[ncols+1] == nnz)
+      if (c[ncols+1] == nzmx)
 	{
 	  (*current_liboctave_error_handler)
 	    ("Sparse::SparseRep::elem (octave_idx_type, octave_idx_type): sparse matrix filled");
@@ -97,7 +97,7 @@
 T
 Sparse<T>::SparseRep::celem (octave_idx_type _r, octave_idx_type _c) const
 {
-  if (nnz > 0)
+  if (nzmx > 0)
     for (octave_idx_type i = c[_c]; i < c[_c + 1]; i++)
       if (r[i] == _r)
 	return d[i];
@@ -108,11 +108,11 @@
 void
 Sparse<T>::SparseRep::maybe_compress (bool remove_zeros)
 {
-  octave_idx_type ndel = nnz - c[ncols];
+  octave_idx_type ndel = nzmx - c[ncols];
   octave_idx_type nzero = 0;
 
   if (remove_zeros)
-    for (octave_idx_type i = 0; i < nnz - ndel; i++)
+    for (octave_idx_type i = 0; i < nzmx - ndel; i++)
       if (d[i] == T ())
 	nzero++;
 
@@ -121,26 +121,26 @@
 
   if (!nzero)
     {
-      octave_idx_type new_nnz = nnz - ndel;
-
-      T *new_data = new T [new_nnz];
-      for (octave_idx_type i = 0; i < new_nnz; i++)
+      octave_idx_type new_nzmx = nzmx - ndel;
+
+      T *new_data = new T [new_nzmx];
+      for (octave_idx_type i = 0; i < new_nzmx; i++)
 	new_data[i] = d[i];
       delete [] d;
       d = new_data;
 
-      octave_idx_type *new_ridx = new octave_idx_type [new_nnz];
-      for (octave_idx_type i = 0; i < new_nnz; i++)
+      octave_idx_type *new_ridx = new octave_idx_type [new_nzmx];
+      for (octave_idx_type i = 0; i < new_nzmx; i++)
 	new_ridx[i] = r[i];
       delete [] r;
       r = new_ridx;
     }
   else
     {
-      octave_idx_type new_nnz = nnz - ndel - nzero;
-
-      T *new_data = new T [new_nnz];
-      octave_idx_type *new_ridx = new octave_idx_type [new_nnz];
+      octave_idx_type new_nzmx = nzmx - ndel - nzero;
+
+      T *new_data = new T [new_nzmx];
+      octave_idx_type *new_ridx = new octave_idx_type [new_nzmx];
 
       octave_idx_type ii = 0;
       octave_idx_type ic = 0;
@@ -163,37 +163,37 @@
       r = new_ridx;
     }
 
-  nnz -= ndel + nzero;
+  nzmx -= ndel + nzero;
 }
 
 template <class T>
 void
 Sparse<T>::SparseRep::change_length (octave_idx_type nz)
 {
-  if (nz != nnz)
+  if (nz != nzmx)
     {
-      octave_idx_type min_nnz = (nz < nnz ? nz : nnz);
+      octave_idx_type min_nzmx = (nz < nzmx ? nz : nzmx);
 
       octave_idx_type * new_ridx = new octave_idx_type [nz];
-      for (octave_idx_type i = 0; i < min_nnz; i++)
+      for (octave_idx_type i = 0; i < min_nzmx; i++)
 	new_ridx[i] = r[i];
 
       delete [] r;
       r = new_ridx;
 
       T * new_data = new T [nz];
-      for (octave_idx_type i = 0; i < min_nnz; i++)
+      for (octave_idx_type i = 0; i < min_nzmx; i++)
 	new_data[i] = d[i];
 
       delete [] d;
       d = new_data;
 
-      if (nz < nnz)
+      if (nz < nzmx)
 	for (octave_idx_type i = 0; i <= ncols; i++)
 	  if (c[i] > nz)
 	    c[i] = nz;
 
-      nnz = nz;
+      nzmx = nz;
     }
 }
 
@@ -202,13 +202,13 @@
 Sparse<T>::Sparse (const Sparse<U>& a)
   : dimensions (a.dimensions), idx (0), idx_count (0)
 {
-  if (a.nnz () == 0)
+  if (a.nzmax () == 0)
     rep = new typename Sparse<T>::SparseRep (rows (), cols());
   else
     {
-      rep = new typename Sparse<T>::SparseRep (rows (), cols (), a.nnz ());
+      rep = new typename Sparse<T>::SparseRep (rows (), cols (), a.nzmax ());
       
-      octave_idx_type nz = nnz ();
+      octave_idx_type nz = nzmax ();
       octave_idx_type nc = cols ();
       for (octave_idx_type i = 0; i < nz; i++)
 	{
@@ -267,13 +267,13 @@
   else
     {
       dim_vector old_dims = a.dims();
-      octave_idx_type new_nnz = a.nnz ();
+      octave_idx_type new_nzmx = a.nzmax ();
       octave_idx_type new_nr = dv (0);
       octave_idx_type new_nc = dv (1);
       octave_idx_type old_nr = old_dims (0);
       octave_idx_type old_nc = old_dims (1);
 
-      rep = new typename Sparse<T>::SparseRep (new_nr, new_nc, new_nnz);
+      rep = new typename Sparse<T>::SparseRep (new_nr, new_nc, new_nzmx);
 
       octave_idx_type kk = 0;
       xcidx(0) = 0;
@@ -290,7 +290,7 @@
 	    xridx(j) = ii;
 	  }
       for (octave_idx_type k = kk; k < new_nc; k++)
-	xcidx(k+1) = new_nnz;
+	xcidx(k+1) = new_nzmx;
     }
 }
 
@@ -318,17 +318,17 @@
     }
   else
     {
-      octave_idx_type max_nnz = (r_len > c_len ? r_len : c_len);
-
-      OCTAVE_LOCAL_BUFFER (octave_sparse_sort_idxl *, sidx, max_nnz);
-      OCTAVE_LOCAL_BUFFER (octave_sparse_sort_idxl, sidxX, max_nnz);
-
-      for (octave_idx_type i = 0; i < max_nnz; i++)
+      octave_idx_type max_nzmx = (r_len > c_len ? r_len : c_len);
+
+      OCTAVE_LOCAL_BUFFER (octave_sparse_sort_idxl *, sidx, max_nzmx);
+      OCTAVE_LOCAL_BUFFER (octave_sparse_sort_idxl, sidxX, max_nzmx);
+
+      for (octave_idx_type i = 0; i < max_nzmx; i++)
 	sidx[i] = &sidxX[i];
 
-      octave_idx_type actual_nnz = 0;
+      octave_idx_type actual_nzmx = 0;
       OCTAVE_QUIT;
-      for (octave_idx_type i = 0; i < max_nnz; i++) 
+      for (octave_idx_type i = 0; i < max_nzmx; i++) 
 	{
 	  octave_idx_type rowidx =  (ri_scalar ? r(0) : r(i));
 	  octave_idx_type colidx = (ci_scalar ? c(0) : c(i));
@@ -337,10 +337,10 @@
 	    {
 	      if ( a (cf_scalar ? 0 : i ) != T ()) 
 		{
-		  sidx[actual_nnz]->r = rowidx;
-		  sidx[actual_nnz]->c = colidx;
-		  sidx[actual_nnz]->idx = i;
-		  actual_nnz++;	
+		  sidx[actual_nzmx]->r = rowidx;
+		  sidx[actual_nzmx]->c = colidx;
+		  sidx[actual_nzmx]->idx = i;
+		  actual_nzmx++;	
 		}
 	    }
 	  else 
@@ -354,7 +354,7 @@
 	    }
 	}
   
-      if (actual_nnz == 0)
+      if (actual_nzmx == 0)
 	rep = new typename Sparse<T>::SparseRep (nr, nc);
       else
 	{
@@ -362,23 +362,23 @@
 	  octave_sort<octave_sparse_sort_idxl *> 
 	    sort (octave_sparse_sidxl_comp);
 
-	  sort.sort (sidx, actual_nnz);
+	  sort.sort (sidx, actual_nzmx);
 	  OCTAVE_QUIT;
 
 	  // Now count the unique non-zero values
-	  octave_idx_type real_nnz = 1;
-	  for (octave_idx_type i = 1; i < actual_nnz; i++) 
+	  octave_idx_type real_nzmx = 1;
+	  for (octave_idx_type i = 1; i < actual_nzmx; i++) 
 	    if (sidx[i-1]->r != sidx[i]->r || sidx[i-1]->c != sidx[i]->c) 
-	      real_nnz++;
-
-	  rep = new typename Sparse<T>::SparseRep (nr, nc, real_nnz);
+	      real_nzmx++;
+
+	  rep = new typename Sparse<T>::SparseRep (nr, nc, real_nzmx);
 
 	  octave_idx_type cx = 0;
 	  octave_idx_type prev_rval = -1;
 	  octave_idx_type prev_cval = -1;
 	  octave_idx_type ii = -1;
 	  xcidx (0) = 0;
-	  for (octave_idx_type i = 0; i < actual_nnz; i++) 
+	  for (octave_idx_type i = 0; i < actual_nzmx; i++) 
 	    {
 	      OCTAVE_QUIT;
 	      octave_idx_type iidx = sidx[i]->idx;
@@ -435,18 +435,18 @@
     }
   else
     {
-      octave_idx_type max_nnz = (r_len > c_len ? r_len : c_len);
+      octave_idx_type max_nzmx = (r_len > c_len ? r_len : c_len);
   
-      OCTAVE_LOCAL_BUFFER (octave_sparse_sort_idxl *, sidx, max_nnz);
-      OCTAVE_LOCAL_BUFFER (octave_sparse_sort_idxl, sidxX, max_nnz);
-
-      for (octave_idx_type i = 0; i < max_nnz; i++)
+      OCTAVE_LOCAL_BUFFER (octave_sparse_sort_idxl *, sidx, max_nzmx);
+      OCTAVE_LOCAL_BUFFER (octave_sparse_sort_idxl, sidxX, max_nzmx);
+
+      for (octave_idx_type i = 0; i < max_nzmx; i++)
 	sidx[i] = &sidxX[i];
 
-      octave_idx_type actual_nnz = 0;
+      octave_idx_type actual_nzmx = 0;
       OCTAVE_QUIT;
 
-      for (octave_idx_type i = 0; i < max_nnz; i++) 
+      for (octave_idx_type i = 0; i < max_nzmx; i++) 
 	{
 	  octave_idx_type rowidx = static_cast<octave_idx_type> (ri_scalar ? r(0) : r(i));
 	  octave_idx_type colidx = static_cast<octave_idx_type> (ci_scalar ? c(0) : c(i));
@@ -455,10 +455,10 @@
 	    {
 	      if ( a (cf_scalar ? 0 : i ) != T ()) 
 		{
-		  sidx[actual_nnz]->r = rowidx;
-		  sidx[actual_nnz]->c = colidx;
-		  sidx[actual_nnz]->idx = i;
-		  actual_nnz++;	
+		  sidx[actual_nzmx]->r = rowidx;
+		  sidx[actual_nzmx]->c = colidx;
+		  sidx[actual_nzmx]->idx = i;
+		  actual_nzmx++;	
 		}
 	    }
 	  else 
@@ -472,7 +472,7 @@
 	    }
 	}
 
-      if (actual_nnz == 0)
+      if (actual_nzmx == 0)
 	rep = new typename Sparse<T>::SparseRep (nr, nc);
       else
 	{
@@ -480,23 +480,23 @@
 	  octave_sort<octave_sparse_sort_idxl *> 
 	    sort (octave_sparse_sidxl_comp);
 
-	  sort.sort (sidx, actual_nnz);
+	  sort.sort (sidx, actual_nzmx);
 	  OCTAVE_QUIT;
 
 	  // Now count the unique non-zero values
-	  octave_idx_type real_nnz = 1;
-	  for (octave_idx_type i = 1; i < actual_nnz; i++) 
+	  octave_idx_type real_nzmx = 1;
+	  for (octave_idx_type i = 1; i < actual_nzmx; i++) 
 	    if (sidx[i-1]->r != sidx[i]->r || sidx[i-1]->c != sidx[i]->c) 
-	      real_nnz++;
-
-	  rep = new typename Sparse<T>::SparseRep (nr, nc, real_nnz);
+	      real_nzmx++;
+
+	  rep = new typename Sparse<T>::SparseRep (nr, nc, real_nzmx);
 
 	  octave_idx_type cx = 0;
 	  octave_idx_type prev_rval = -1;
 	  octave_idx_type prev_cval = -1;
 	  octave_idx_type ii = -1;
 	  xcidx (0) = 0;
-	  for (octave_idx_type i = 0; i < actual_nnz; i++) 
+	  for (octave_idx_type i = 0; i < actual_nzmx; i++) 
 	    {
 	      OCTAVE_QUIT;
 	      octave_idx_type iidx = sidx[i]->idx;
@@ -537,14 +537,14 @@
   octave_idx_type nr = rows ();
   octave_idx_type nc = cols ();
   octave_idx_type len = a.length ();
-  octave_idx_type new_nnz = 0;
+  octave_idx_type new_nzmx = 0;
 
   // First count the number of non-zero terms
   for (octave_idx_type i = 0; i < len; i++)
     if (a(i) != T ())
-      new_nnz++;
-
-  rep = new typename Sparse<T>::SparseRep (nr, nc, new_nnz);
+      new_nzmx++;
+
+  rep = new typename Sparse<T>::SparseRep (nr, nc, new_nzmx);
 
   octave_idx_type ii = 0;
   xcidx(0) = 0;
@@ -572,14 +572,14 @@
       octave_idx_type nr = rows ();
       octave_idx_type nc = cols ();
       octave_idx_type len = a.length ();
-      octave_idx_type new_nnz = 0;
+      octave_idx_type new_nzmx = 0;
 
       // First count the number of non-zero terms
       for (octave_idx_type i = 0; i < len; i++)
 	if (a(i) != T ())
-	  new_nnz++;
-
-      rep = new typename Sparse<T>::SparseRep (nr, nc, new_nnz);
+	  new_nzmx++;
+
+      rep = new typename Sparse<T>::SparseRep (nr, nc, new_nzmx);
 
       octave_idx_type ii = 0;
       xcidx(0) = 0;
@@ -731,12 +731,12 @@
     {
       if (dimensions.numel () == new_dims.numel ())
 	{
-	  octave_idx_type new_nnz = nnz ();
+	  octave_idx_type new_nzmx = nzmax ();
 	  octave_idx_type new_nr = new_dims (0);
 	  octave_idx_type new_nc = new_dims (1);
 	  octave_idx_type old_nr = rows ();
 	  octave_idx_type old_nc = cols ();
-	  retval = Sparse<T> (new_nr, new_nc, new_nnz);
+	  retval = Sparse<T> (new_nr, new_nc, new_nzmx);
 
 	  octave_idx_type kk = 0;
 	  retval.xcidx(0) = 0;
@@ -753,7 +753,7 @@
 		retval.xridx(j) = ii;
 	      }
 	  for (octave_idx_type k = kk; k < new_nc; k++)
-	    retval.xcidx(k+1) = new_nnz;
+	    retval.xcidx(k+1) = new_nzmx;
 	}
       else
 	(*current_liboctave_error_handler) ("reshape: size mismatch");
@@ -846,7 +846,7 @@
   octave_idx_type nc = cols ();
   octave_idx_type nr = rows ();
 
-  if (nnz () == 0 || r == 0 || c == 0)
+  if (nzmax () == 0 || r == 0 || c == 0)
     // Special case of redimensioning to/from a sparse matrix with 
     // no elements
     rep = new typename Sparse<T>::SparseRep (r, c);
@@ -935,7 +935,7 @@
     }
 
   // First count the number of elements in the final array
-  octave_idx_type nel = cidx(c) + a.nnz ();
+  octave_idx_type nel = cidx(c) + a.nzmax ();
 
   if (c + a_cols < nc)
     nel += cidx(nc) - cidx(c + a_cols);
@@ -1025,7 +1025,7 @@
 
   octave_idx_type nr = rows ();
   octave_idx_type nc = cols ();
-  octave_idx_type nz = nnz ();
+  octave_idx_type nz = nzmax ();
   Sparse<T> retval (nc, nr, nz);
 
   retval.cidx(0) = 0;
@@ -1123,7 +1123,7 @@
   if (num_to_delete != 0)
     {
       octave_idx_type new_n = n;
-      octave_idx_type new_nnz = nnz ();
+      octave_idx_type new_nzmx = nzmax ();
 
       octave_idx_type iidx = 0;
 
@@ -1139,7 +1139,7 @@
 	      new_n--;
 
 	      if (tmp.elem (i) != T ())
-		new_nnz--;
+		new_nzmx--;
 
 	      if (iidx == num_to_delete)
 		break;
@@ -1151,9 +1151,9 @@
 	  rep->count--;
 
 	  if (nr == 1)
-	    rep = new typename Sparse<T>::SparseRep (1, new_n, new_nnz);
+	    rep = new typename Sparse<T>::SparseRep (1, new_n, new_nzmx);
 	  else
-	    rep = new typename Sparse<T>::SparseRep (new_n, 1, new_nnz);
+	    rep = new typename Sparse<T>::SparseRep (new_n, 1, new_nzmx);
 
 	  octave_idx_type ii = 0;
 	  octave_idx_type jj = 0;
@@ -1196,7 +1196,7 @@
 	  else
 	    {
 	      cidx(0) = 0;
-	      cidx(1) = new_nnz;
+	      cidx(1) = new_nzmx;
 	      dimensions(0) = new_n;
 	      dimensions(1) = 1;
 	    }
@@ -1268,7 +1268,7 @@
 	      else
 		{
 		  octave_idx_type new_nc = nc;
-		  octave_idx_type new_nnz = nnz ();
+		  octave_idx_type new_nzmx = nzmax ();
 
 		  octave_idx_type iidx = 0;
 
@@ -1281,7 +1281,7 @@
 			  iidx++;
 			  new_nc--;
 			  
-			  new_nnz -= cidx(j+1) - cidx(j);
+			  new_nzmx -= cidx(j+1) - cidx(j);
 
 			  if (iidx == num_to_delete)
 			    break;
@@ -1293,7 +1293,7 @@
 		      const Sparse<T> tmp (*this);
 		      --rep->count;
 		      rep = new typename Sparse<T>::SparseRep (nr, new_nc, 
-							       new_nnz);
+							       new_nzmx);
 		      octave_idx_type ii = 0;
 		      octave_idx_type jj = 0;
 		      iidx = 0;
@@ -1343,7 +1343,7 @@
 	      else
 		{
 		  octave_idx_type new_nr = nr;
-		  octave_idx_type new_nnz = nnz ();
+		  octave_idx_type new_nzmx = nzmax ();
 
 		  octave_idx_type iidx = 0;
 
@@ -1356,9 +1356,9 @@
 			  iidx++;
 			  new_nr--;
 			  
-			  for (octave_idx_type j = 0; j < nnz (); j++)
+			  for (octave_idx_type j = 0; j < nzmax (); j++)
 			    if (ridx(j) == i)
-			      new_nnz--;
+			      new_nzmx--;
 
 			  if (iidx == num_to_delete)
 			    break;
@@ -1370,7 +1370,7 @@
 		      const Sparse<T> tmp (*this);
 		      --rep->count;
 		      rep = new typename Sparse<T>::SparseRep (new_nr, nc, 
-							       new_nnz);
+							       new_nzmx);
 
 		      octave_idx_type jj = 0;
 		      cidx(0) = 0;
@@ -1464,7 +1464,7 @@
 
   octave_idx_type nr = dim1 ();
   octave_idx_type nc = dim2 ();
-  octave_idx_type nz = nnz ();
+  octave_idx_type nz = nzmax ();
 
   octave_idx_type orig_len = nr * nc;
 
@@ -1572,7 +1572,7 @@
       else
 	{
 
-	  octave_idx_type new_nnz = 0;
+	  octave_idx_type new_nzmx = 0;
 	  if (nr == 1)
 	    for (octave_idx_type i = 0; i < n; i++)
 	      {
@@ -1581,7 +1581,7 @@
 		octave_idx_type ii = idx_arg.elem (i);
 		if (ii < len)
 		  if (cidx(ii) != cidx(ii+1))
-		    new_nnz++;
+		    new_nzmx++;
 	      }
 	  else
 	    for (octave_idx_type i = 0; i < n; i++)
@@ -1593,7 +1593,7 @@
 		      OCTAVE_QUIT;
 
 		      if (ridx(j) == ii)
-			new_nnz++;
+			new_nzmx++;
 		      if (ridx(j) >= ii)
 			break;
 		    }
@@ -1604,7 +1604,7 @@
 	    {
 	      if (nr == 1)
 		{
-		  retval = Sparse<T> (1, n, new_nnz);
+		  retval = Sparse<T> (1, n, new_nzmx);
 		  octave_idx_type jj = 0;
 		  retval.xcidx(0) = 0;
 		  for (octave_idx_type i = 0; i < n; i++)
@@ -1623,9 +1623,9 @@
 		}
 	      else
 		{
-		  retval = Sparse<T> (n, 1, new_nnz);
+		  retval = Sparse<T> (n, 1, new_nzmx);
 		  retval.xcidx(0) = 0;
-		  retval.xcidx(1) = new_nnz;
+		  retval.xcidx(1) = new_nzmx;
 		  octave_idx_type jj = 0;
 		  for (octave_idx_type i = 0; i < n; i++)
 		    {
@@ -1661,7 +1661,7 @@
 		  new_nc = 1;
 		}
 
-	      retval = Sparse<T> (new_nr, new_nc, new_nnz);
+	      retval = Sparse<T> (new_nr, new_nc, new_nzmx);
 
 	      if (nr == 1)
 		{
@@ -1737,7 +1737,7 @@
 	  else
 	    {
 	      // Count number of non-zero elements
-	      octave_idx_type new_nnz = 0;
+	      octave_idx_type new_nzmx = 0;
 	      octave_idx_type kk = 0;
 	      for (octave_idx_type j = 0; j < result_nc; j++)
 		{
@@ -1753,7 +1753,7 @@
 			  for (octave_idx_type k = cidx(fc); k < cidx(fc+1); k++)
 			    {
 			      if (ridx(k) == fr)
-				new_nnz++;
+				new_nzmx++;
 			      if (ridx(k) >= fr)
 				break;
 			    }
@@ -1761,7 +1761,7 @@
 		    }
 		}
 	      
-	      retval = Sparse<T> (result_nr, result_nc, new_nnz);
+	      retval = Sparse<T> (result_nr, result_nc, new_nzmx);
 
 	      kk = 0;
 	      octave_idx_type jj = 0;
@@ -1826,7 +1826,7 @@
       else
 	{
 	  // First count the number of non-zero elements
-	  octave_idx_type new_nnz = 0;
+	  octave_idx_type new_nzmx = 0;
 	  for (octave_idx_type j = 0; j < m; j++)
 	    {
 	      octave_idx_type jj = idx_j.elem (j);
@@ -1840,7 +1840,7 @@
 		      for (octave_idx_type k = cidx(jj); k < cidx(jj+1); k++)
 			{
 			  if (ridx(k) == ii)
-			    new_nnz++;
+			    new_nzmx++;
 			  if (ridx(k) >= ii)
 			    break;
 			}
@@ -1848,7 +1848,7 @@
 		}
 	    }
 
-	  retval = Sparse<T> (n, m, new_nnz);
+	  retval = Sparse<T> (n, m, new_nzmx);
 
 	  octave_idx_type kk = 0;
 	  retval.xcidx(0) = 0;
@@ -1936,7 +1936,7 @@
 
   octave_idx_type nr = lhs.rows ();
   octave_idx_type nc = lhs.cols ();
-  octave_idx_type nz = lhs.nnz ();
+  octave_idx_type nz = lhs.nzmax ();
 
   octave_idx_type n = lhs_idx.freeze (lhs_len, "vector", true, 
 				      liboctave_wrore_flag);
@@ -1952,7 +1952,7 @@
 
       if (rhs_len == n)
 	{
-	  octave_idx_type new_nnz = lhs.nnz ();
+	  octave_idx_type new_nzmx = lhs.nzmax ();
 
 	  OCTAVE_LOCAL_BUFFER (octave_idx_type, rhs_idx, n);
 	  if (! lhs_idx.is_colon ())
@@ -1998,16 +1998,16 @@
 
 	      octave_idx_type ii = lhs_idx.elem (i);
 	      if (ii < lhs_len && c_lhs.elem(ii) != LT ())
-		new_nnz--;
+		new_nzmx--;
 	      if (rhs.elem(rhs_idx[i]) != RT ())
-		new_nnz++;
+		new_nzmx++;
 	    }
 
 	  if (nr > 1)
 	    {
-	      Sparse<LT> tmp (max_idx, 1, new_nnz);
+	      Sparse<LT> tmp (max_idx, 1, new_nzmx);
 	      tmp.cidx(0) = 0;
-	      tmp.cidx(1) = tmp.nnz ();
+	      tmp.cidx(1) = tmp.nzmax ();
 
 	      octave_idx_type i = 0;
 	      octave_idx_type ii = 0;
@@ -2049,7 +2049,7 @@
 	    }
 	  else
 	    {
-	      Sparse<LT> tmp (1, max_idx, new_nnz);
+	      Sparse<LT> tmp (1, max_idx, new_nzmx);
 
 	      octave_idx_type i = 0;
 	      octave_idx_type ii = 0;
@@ -2105,28 +2105,28 @@
 	}
       else if (rhs_len == 1)
 	{
-	  octave_idx_type new_nnz = lhs.nnz ();
+	  octave_idx_type new_nzmx = lhs.nzmax ();
 	  RT scalar = rhs.elem (0);
 	  bool scalar_non_zero = (scalar != RT ());
 	  lhs_idx.sort (true);
 
 	  // First count the number of non-zero elements
 	  if (scalar != RT ())
-	    new_nnz += n;
+	    new_nzmx += n;
 	  for (octave_idx_type i = 0; i < n; i++)
 	    {
 	      OCTAVE_QUIT;
 
 	      octave_idx_type ii = lhs_idx.elem (i);
 	      if (ii < lhs_len && c_lhs.elem(ii) != LT ())
-		new_nnz--;
+		new_nzmx--;
 	    }
 
 	  if (nr > 1)
 	    {
-	      Sparse<LT> tmp (max_idx, 1, new_nnz);
+	      Sparse<LT> tmp (max_idx, 1, new_nzmx);
 	      tmp.cidx(0) = 0;
-	      tmp.cidx(1) = tmp.nnz ();
+	      tmp.cidx(1) = tmp.nzmax ();
 
 	      octave_idx_type i = 0;
 	      octave_idx_type ii = 0;
@@ -2167,7 +2167,7 @@
 	    }
 	  else
 	    {
-	      Sparse<LT> tmp (1, max_idx, new_nnz);
+	      Sparse<LT> tmp (1, max_idx, new_nzmx);
 
 	      octave_idx_type i = 0;
 	      octave_idx_type ii = 0;
@@ -2229,8 +2229,8 @@
       if (lhs_len == 0)
 	{
 
-	  octave_idx_type new_nnz = rhs.nnz ();
-	  Sparse<LT> tmp (1, rhs_len, new_nnz);
+	  octave_idx_type new_nzmx = rhs.nzmax ();
+	  Sparse<LT> tmp (1, rhs_len, new_nzmx);
 
 	  octave_idx_type ii = 0;
 	  octave_idx_type jj = 0;
@@ -2277,7 +2277,7 @@
 
   octave_idx_type lhs_nr = lhs.rows ();
   octave_idx_type lhs_nc = lhs.cols ();
-  octave_idx_type lhs_nz = lhs.nnz ();
+  octave_idx_type lhs_nz = lhs.nzmax ();
 
   octave_idx_type rhs_nr = rhs.rows ();
   octave_idx_type rhs_nc = rhs.cols ();
@@ -2345,7 +2345,7 @@
 		      RT scalar = rhs.elem (0, 0);
 
 		      // Count the number of non-zero terms
-		      octave_idx_type new_nnz = lhs.nnz ();
+		      octave_idx_type new_nzmx = lhs.nzmax ();
 		      for (octave_idx_type j = 0; j < m; j++)
 			{
 			  octave_idx_type jj = idx_j.elem (j);
@@ -2363,7 +2363,7 @@
 					   k < lhs.cidx(jj+1); k++)
 					{
 					  if (lhs.ridx(k) == ii)
-					    new_nnz--;
+					    new_nzmx--;
 					  if (lhs.ridx(k) >= ii)
 					    break;
 					}
@@ -2373,9 +2373,9 @@
 			}
 
 		      if (scalar != RT())
-			new_nnz += m * n;
-
-		      Sparse<LT> stmp (new_nr, new_nc, new_nnz);
+			new_nzmx += m * n;
+
+		      Sparse<LT> stmp (new_nr, new_nc, new_nzmx);
 
 		      octave_idx_type jji = 0;
 		      octave_idx_type jj = idx_j.elem (jji);
@@ -2526,7 +2526,7 @@
 			  rhs_idx_j[i] = i;
 
 		      // Count the number of non-zero terms
-		      octave_idx_type new_nnz = lhs.nnz ();
+		      octave_idx_type new_nzmx = lhs.nzmax ();
 		      for (octave_idx_type j = 0; j < m; j++)
 			{
 			  octave_idx_type jj = idx_j.elem (j);
@@ -2544,7 +2544,7 @@
 					   k < lhs.cidx(jj+1); k++)
 					{
 					  if (lhs.ridx(k) == ii)
-					    new_nnz--;
+					    new_nzmx--;
 					  if (lhs.ridx(k) >= ii)
 					    break;
 					}
@@ -2552,11 +2552,11 @@
 				}
 			      
 			      if (rhs.elem(rhs_idx_i[i],rhs_idx_j[j]) != RT ())
-				new_nnz++;
+				new_nzmx++;
 			    }
 			}
 
-		      Sparse<LT> stmp (new_nr, new_nc, new_nnz);
+		      Sparse<LT> stmp (new_nr, new_nc, new_nzmx);
 
 		      octave_idx_type jji = 0;
 		      octave_idx_type jj = idx_j.elem (jji);
@@ -2746,7 +2746,7 @@
 		}
 	      else if (len == rhs_nr * rhs_nc)
 		{
-		  octave_idx_type new_nnz = lhs_nz;
+		  octave_idx_type new_nzmx = lhs_nz;
 		  OCTAVE_LOCAL_BUFFER (octave_idx_type, rhs_idx, len);
 		  
 		  if (! idx_i.is_colon ())
@@ -2794,12 +2794,12 @@
 		      
 		      octave_idx_type ii = idx_i.elem (i);
 		      if (ii < lhs_len && c_lhs.elem(ii) != LT ())
-			new_nnz--;
+			new_nzmx--;
 		      if (rhs.elem(rhs_idx[i]) != RT ())
-			new_nnz++;
+			new_nzmx++;
 		    }
 
-		  Sparse<LT> stmp (lhs_nr, lhs_nc, new_nnz);
+		  Sparse<LT> stmp (lhs_nr, lhs_nc, new_nzmx);
 
 		  octave_idx_type i = 0;
 		  octave_idx_type ii = 0;
@@ -2869,21 +2869,21 @@
 	      else if (rhs_nr == 1 && rhs_nc == 1)
 		{
 		  RT scalar = rhs.elem (0, 0);
-		  octave_idx_type new_nnz = lhs_nz;
+		  octave_idx_type new_nzmx = lhs_nz;
 		  idx_i.sort (true);
 
 		  // First count the number of non-zero elements
 		  if (scalar != RT ())
-		    new_nnz += len;
+		    new_nzmx += len;
 		  for (octave_idx_type i = 0; i < len; i++)
 		    {
 		      OCTAVE_QUIT;
 		      octave_idx_type ii = idx_i.elem (i);
 		      if (ii < lhs_len && c_lhs.elem(ii) != LT ())
-			new_nnz--;
+			new_nzmx--;
 		    }
 
-		  Sparse<LT> stmp (lhs_nr, lhs_nc, new_nnz);
+		  Sparse<LT> stmp (lhs_nr, lhs_nc, new_nzmx);
 
 		  octave_idx_type i = 0;
 		  octave_idx_type ii = 0;
@@ -2978,7 +2978,7 @@
 Sparse<T>::print_info (std::ostream& os, const std::string& prefix) const
 {
   os << prefix << "rep address: " << rep << "\n"
-     << prefix << "rep->nnz:    " << rep->nnz << "\n"
+     << prefix << "rep->nzmx:   " << rep->nzmx  << "\n"
      << prefix << "rep->nrows:  " << rep->nrows << "\n"
      << prefix << "rep->ncols:  " << rep->ncols << "\n"
      << prefix << "rep->data:   " << static_cast<void *> (rep->d) << "\n"