diff liboctave/dNDArray.cc @ 5275:23b37da9fd5b

[project @ 2005-04-08 16:07:35 by jwe]
author jwe
date Fri, 08 Apr 2005 16:07:37 +0000
parents 57077d0ddc8e
children 4c8a2e4e0717
line wrap: on
line diff
--- a/liboctave/dNDArray.cc	Thu Apr 07 21:51:37 2005 +0000
+++ b/liboctave/dNDArray.cc	Fri Apr 08 16:07:37 2005 +0000
@@ -48,23 +48,23 @@
   if (dim > dv.length () || dim < 0)
     return ComplexNDArray ();
 
-  int stride = 1;
-  int n = dv(dim);
+  octave_idx_type stride = 1;
+  octave_idx_type n = dv(dim);
 
   for (int i = 0; i < dim; i++)
     stride *= dv(i);
 
-  int howmany = numel () / dv (dim);
+  octave_idx_type howmany = numel () / dv (dim);
   howmany = (stride == 1 ? howmany : (howmany > stride ? stride : howmany));
-  int nloop = (stride == 1 ? 1 : numel () / dv (dim) / stride);
-  int dist = (stride == 1 ? n : 1);
+  octave_idx_type nloop = (stride == 1 ? 1 : numel () / dv (dim) / stride);
+  octave_idx_type dist = (stride == 1 ? n : 1);
 
   const double *in (fortran_vec ());
   ComplexNDArray retval (dv);
   Complex *out (retval.fortran_vec ());
 
   // Need to be careful here about the distance between fft's
-  for (int k = 0; k < nloop; k++)
+  for (octave_idx_type k = 0; k < nloop; k++)
     octave_fftw::fft (in + k * stride * n, out + k * stride * n, 
 		      n, howmany, stride, dist);
 
@@ -79,22 +79,22 @@
   if (dim > dv.length () || dim < 0)
     return ComplexNDArray ();
 
-  int stride = 1;
-  int n = dv(dim);
+  octave_idx_type stride = 1;
+  octave_idx_type n = dv(dim);
 
   for (int i = 0; i < dim; i++)
     stride *= dv(i);
 
-  int howmany = numel () / dv (dim);
+  octave_idx_type howmany = numel () / dv (dim);
   howmany = (stride == 1 ? howmany : (howmany > stride ? stride : howmany));
-  int nloop = (stride == 1 ? 1 : numel () / dv (dim) / stride);
-  int dist = (stride == 1 ? n : 1);
+  octave_idx_type nloop = (stride == 1 ? 1 : numel () / dv (dim) / stride);
+  octave_idx_type dist = (stride == 1 ? n : 1);
 
   ComplexNDArray retval (*this);
   Complex *out (retval.fortran_vec ());
 
   // Need to be careful here about the distance between fft's
-  for (int k = 0; k < nloop; k++)
+  for (octave_idx_type k = 0; k < nloop; k++)
     octave_fftw::ifft (out + k * stride * n, out + k * stride * n, 
 		      n, howmany, stride, dist);
 
@@ -112,10 +112,10 @@
   const double *in = fortran_vec ();
   ComplexNDArray retval (dv);
   Complex *out = retval.fortran_vec ();
-  int howmany = numel() / dv(0) / dv(1);
-  int dist = dv(0) * dv(1);
+  octave_idx_type howmany = numel() / dv(0) / dv(1);
+  octave_idx_type dist = dv(0) * dv(1);
 
-  for (int i=0; i < howmany; i++)
+  for (octave_idx_type i=0; i < howmany; i++)
     octave_fftw::fftNd (in + i*dist, out + i*dist, 2, dv2);
 
   return retval;
@@ -131,10 +131,10 @@
   dim_vector dv2(dv(0), dv(1));
   ComplexNDArray retval (*this);
   Complex *out = retval.fortran_vec ();
-  int howmany = numel() / dv(0) / dv(1);
-  int dist = dv(0) * dv(1);
+  octave_idx_type howmany = numel() / dv(0) / dv(1);
+  octave_idx_type dist = dv(0) * dv(1);
 
-  for (int i=0; i < howmany; i++)
+  for (octave_idx_type i=0; i < howmany; i++)
     octave_fftw::ifftNd (out + i*dist, out + i*dist, 2, dv2);
 
   return retval;
@@ -181,13 +181,13 @@
   // each subroutine.
 
   F77_RET_T
-  F77_FUNC (cffti, CFFTI) (const int&, Complex*);
+  F77_FUNC (cffti, CFFTI) (const octave_idx_type&, Complex*);
 
   F77_RET_T
-  F77_FUNC (cfftf, CFFTF) (const int&, Complex*, Complex*);
+  F77_FUNC (cfftf, CFFTF) (const octave_idx_type&, Complex*, Complex*);
 
   F77_RET_T
-  F77_FUNC (cfftb, CFFTB) (const int&, Complex*, Complex*);
+  F77_FUNC (cfftb, CFFTB) (const octave_idx_type&, Complex*, Complex*);
 }
 
 ComplexNDArray
@@ -199,37 +199,37 @@
     return ComplexNDArray ();
 
   ComplexNDArray retval (dv);
-  int npts = dv(dim);
-  int nn = 4*npts+15;
+  octave_idx_type npts = dv(dim);
+  octave_idx_type nn = 4*npts+15;
   Array<Complex> wsave (nn);
   Complex *pwsave = wsave.fortran_vec ();
 
   OCTAVE_LOCAL_BUFFER (Complex, tmp, npts);
 
-  int stride = 1;
+  octave_idx_type stride = 1;
 
   for (int i = 0; i < dim; i++)
     stride *= dv(i);
 
-  int howmany = numel () / npts;
+  octave_idx_type howmany = numel () / npts;
   howmany = (stride == 1 ? howmany : (howmany > stride ? stride : howmany));
-  int nloop = (stride == 1 ? 1 : numel () / npts / stride);
-  int dist = (stride == 1 ? npts : 1);
+  octave_idx_type nloop = (stride == 1 ? 1 : numel () / npts / stride);
+  octave_idx_type dist = (stride == 1 ? npts : 1);
 
   F77_FUNC (cffti, CFFTI) (npts, pwsave);
 
-  for (int k = 0; k < nloop; k++)
+  for (octave_idx_type k = 0; k < nloop; k++)
     {
-      for (int j = 0; j < howmany; j++)
+      for (octave_idx_type j = 0; j < howmany; j++)
 	{
 	  OCTAVE_QUIT;
 
-	  for (int i = 0; i < npts; i++)
+	  for (octave_idx_type i = 0; i < npts; i++)
 	    tmp[i] = elem((i + k*npts)*stride + j*dist);
 
 	  F77_FUNC (cfftf, CFFTF) (npts, tmp, pwsave);
 
-	  for (int i = 0; i < npts; i++)
+	  for (octave_idx_type i = 0; i < npts; i++)
 	    retval ((i + k*npts)*stride + j*dist) = tmp[i];
 	}
     }
@@ -246,37 +246,37 @@
     return ComplexNDArray ();
 
   ComplexNDArray retval (dv);
-  int npts = dv(dim);
-  int nn = 4*npts+15;
+  octave_idx_type npts = dv(dim);
+  octave_idx_type nn = 4*npts+15;
   Array<Complex> wsave (nn);
   Complex *pwsave = wsave.fortran_vec ();
 
   OCTAVE_LOCAL_BUFFER (Complex, tmp, npts);
 
-  int stride = 1;
+  octave_idx_type stride = 1;
 
   for (int i = 0; i < dim; i++)
     stride *= dv(i);
 
-  int howmany = numel () / npts;
+  octave_idx_type howmany = numel () / npts;
   howmany = (stride == 1 ? howmany : (howmany > stride ? stride : howmany));
-  int nloop = (stride == 1 ? 1 : numel () / npts / stride);
-  int dist = (stride == 1 ? npts : 1);
+  octave_idx_type nloop = (stride == 1 ? 1 : numel () / npts / stride);
+  octave_idx_type dist = (stride == 1 ? npts : 1);
 
   F77_FUNC (cffti, CFFTI) (npts, pwsave);
 
-  for (int k = 0; k < nloop; k++)
+  for (octave_idx_type k = 0; k < nloop; k++)
     {
-      for (int j = 0; j < howmany; j++)
+      for (octave_idx_type j = 0; j < howmany; j++)
 	{
 	  OCTAVE_QUIT;
 
-	  for (int i = 0; i < npts; i++)
+	  for (octave_idx_type i = 0; i < npts; i++)
 	    tmp[i] = elem((i + k*npts)*stride + j*dist);
 
 	  F77_FUNC (cfftb, CFFTB) (npts, tmp, pwsave);
 
-	  for (int i = 0; i < npts; i++)
+	  for (octave_idx_type i = 0; i < npts; i++)
 	    retval ((i + k*npts)*stride + j*dist) = tmp[i] / 
 	      static_cast<double> (npts);
 	}
@@ -292,37 +292,37 @@
   dim_vector dv2 (dv(0), dv(1));
   int rank = 2;
   ComplexNDArray retval (*this);
-  int stride = 1;
+  octave_idx_type stride = 1;
 
   for (int i = 0; i < rank; i++)
     {
-      int npts = dv2(i);
-      int nn = 4*npts+15;
+      octave_idx_type npts = dv2(i);
+      octave_idx_type nn = 4*npts+15;
       Array<Complex> wsave (nn);
       Complex *pwsave = wsave.fortran_vec ();
       Array<Complex> row (npts);
       Complex *prow = row.fortran_vec ();
 
-      int howmany = numel () / npts;
+      octave_idx_type howmany = numel () / npts;
       howmany = (stride == 1 ? howmany : 
 		 (howmany > stride ? stride : howmany));
-      int nloop = (stride == 1 ? 1 : numel () / npts / stride);
-      int dist = (stride == 1 ? npts : 1);
+      octave_idx_type nloop = (stride == 1 ? 1 : numel () / npts / stride);
+      octave_idx_type dist = (stride == 1 ? npts : 1);
 
       F77_FUNC (cffti, CFFTI) (npts, pwsave);
 
-      for (int k = 0; k < nloop; k++)
+      for (octave_idx_type k = 0; k < nloop; k++)
 	{
-	  for (int j = 0; j < howmany; j++)
+	  for (octave_idx_type j = 0; j < howmany; j++)
 	    {
 	      OCTAVE_QUIT;
 
-	      for (int l = 0; l < npts; l++)
+	      for (octave_idx_type l = 0; l < npts; l++)
 		prow[l] = retval ((l + k*npts)*stride + j*dist);
 
 	      F77_FUNC (cfftf, CFFTF) (npts, prow, pwsave);
 
-	      for (int l = 0; l < npts; l++)
+	      for (octave_idx_type l = 0; l < npts; l++)
 		retval ((l + k*npts)*stride + j*dist) = prow[l];
 	    }
 	}
@@ -340,37 +340,37 @@
   dim_vector dv2 (dv(0), dv(1));
   int rank = 2;
   ComplexNDArray retval (*this);
-  int stride = 1;
+  octave_idx_type stride = 1;
 
   for (int i = 0; i < rank; i++)
     {
-      int npts = dv2(i);
-      int nn = 4*npts+15;
+      octave_idx_type npts = dv2(i);
+      octave_idx_type nn = 4*npts+15;
       Array<Complex> wsave (nn);
       Complex *pwsave = wsave.fortran_vec ();
       Array<Complex> row (npts);
       Complex *prow = row.fortran_vec ();
 
-      int howmany = numel () / npts;
+      octave_idx_type howmany = numel () / npts;
       howmany = (stride == 1 ? howmany : 
 		 (howmany > stride ? stride : howmany));
-      int nloop = (stride == 1 ? 1 : numel () / npts / stride);
-      int dist = (stride == 1 ? npts : 1);
+      octave_idx_type nloop = (stride == 1 ? 1 : numel () / npts / stride);
+      octave_idx_type dist = (stride == 1 ? npts : 1);
 
       F77_FUNC (cffti, CFFTI) (npts, pwsave);
 
-      for (int k = 0; k < nloop; k++)
+      for (octave_idx_type k = 0; k < nloop; k++)
 	{
-	  for (int j = 0; j < howmany; j++)
+	  for (octave_idx_type j = 0; j < howmany; j++)
 	    {
 	      OCTAVE_QUIT;
 
-	      for (int l = 0; l < npts; l++)
+	      for (octave_idx_type l = 0; l < npts; l++)
 		prow[l] = retval ((l + k*npts)*stride + j*dist);
 
 	      F77_FUNC (cfftb, CFFTB) (npts, prow, pwsave);
 
-	      for (int l = 0; l < npts; l++)
+	      for (octave_idx_type l = 0; l < npts; l++)
 		retval ((l + k*npts)*stride + j*dist) = prow[l] / 
 		  static_cast<double> (npts);
 	    }
@@ -388,37 +388,37 @@
   dim_vector dv = dims ();
   int rank = dv.length ();
   ComplexNDArray retval (*this);
-  int stride = 1;
+  octave_idx_type stride = 1;
 
   for (int i = 0; i < rank; i++)
     {
-      int npts = dv(i);
-      int nn = 4*npts+15;
+      octave_idx_type npts = dv(i);
+      octave_idx_type nn = 4*npts+15;
       Array<Complex> wsave (nn);
       Complex *pwsave = wsave.fortran_vec ();
       Array<Complex> row (npts);
       Complex *prow = row.fortran_vec ();
 
-      int howmany = numel () / npts;
+      octave_idx_type howmany = numel () / npts;
       howmany = (stride == 1 ? howmany : 
 		 (howmany > stride ? stride : howmany));
-      int nloop = (stride == 1 ? 1 : numel () / npts / stride);
-      int dist = (stride == 1 ? npts : 1);
+      octave_idx_type nloop = (stride == 1 ? 1 : numel () / npts / stride);
+      octave_idx_type dist = (stride == 1 ? npts : 1);
 
       F77_FUNC (cffti, CFFTI) (npts, pwsave);
 
-      for (int k = 0; k < nloop; k++)
+      for (octave_idx_type k = 0; k < nloop; k++)
 	{
-	  for (int j = 0; j < howmany; j++)
+	  for (octave_idx_type j = 0; j < howmany; j++)
 	    {
 	      OCTAVE_QUIT;
 
-	      for (int l = 0; l < npts; l++)
+	      for (octave_idx_type l = 0; l < npts; l++)
 		prow[l] = retval ((l + k*npts)*stride + j*dist);
 
 	      F77_FUNC (cfftf, CFFTF) (npts, prow, pwsave);
 
-	      for (int l = 0; l < npts; l++)
+	      for (octave_idx_type l = 0; l < npts; l++)
 		retval ((l + k*npts)*stride + j*dist) = prow[l];
 	    }
 	}
@@ -435,37 +435,37 @@
   dim_vector dv = dims ();
   int rank = dv.length ();
   ComplexNDArray retval (*this);
-  int stride = 1;
+  octave_idx_type stride = 1;
 
   for (int i = 0; i < rank; i++)
     {
-      int npts = dv(i);
-      int nn = 4*npts+15;
+      octave_idx_type npts = dv(i);
+      octave_idx_type nn = 4*npts+15;
       Array<Complex> wsave (nn);
       Complex *pwsave = wsave.fortran_vec ();
       Array<Complex> row (npts);
       Complex *prow = row.fortran_vec ();
 
-      int howmany = numel () / npts;
+      octave_idx_type howmany = numel () / npts;
       howmany = (stride == 1 ? howmany : 
 		 (howmany > stride ? stride : howmany));
-      int nloop = (stride == 1 ? 1 : numel () / npts / stride);
-      int dist = (stride == 1 ? npts : 1);
+      octave_idx_type nloop = (stride == 1 ? 1 : numel () / npts / stride);
+      octave_idx_type dist = (stride == 1 ? npts : 1);
 
       F77_FUNC (cffti, CFFTI) (npts, pwsave);
 
-      for (int k = 0; k < nloop; k++)
+      for (octave_idx_type k = 0; k < nloop; k++)
 	{
-	  for (int j = 0; j < howmany; j++)
+	  for (octave_idx_type j = 0; j < howmany; j++)
 	    {
 	      OCTAVE_QUIT;
 
-	      for (int l = 0; l < npts; l++)
+	      for (octave_idx_type l = 0; l < npts; l++)
 		prow[l] = retval ((l + k*npts)*stride + j*dist);
 
 	      F77_FUNC (cfftb, CFFTB) (npts, prow, pwsave);
 
-	      for (int l = 0; l < npts; l++)
+	      for (octave_idx_type l = 0; l < npts; l++)
 		retval ((l + k*npts)*stride + j*dist) = prow[l] /
 		  static_cast<double> (npts);
 	    }
@@ -486,7 +486,7 @@
 {
   boolNDArray b (dims ());
 
-  for (int i = 0; i < length (); i++)
+  for (octave_idx_type i = 0; i < length (); i++)
     b.elem (i) = ! elem (i);
 
   return b;
@@ -495,17 +495,17 @@
 bool
 NDArray::any_element_is_negative (bool neg_zero) const
 {
-  int nel = nelem ();
+  octave_idx_type nel = nelem ();
 
   if (neg_zero)
     {
-      for (int i = 0; i < nel; i++)
+      for (octave_idx_type i = 0; i < nel; i++)
 	if (lo_ieee_signbit (elem (i)))
 	  return true;
     }
   else
     {
-      for (int i = 0; i < nel; i++)
+      for (octave_idx_type i = 0; i < nel; i++)
 	if (elem (i) < 0)
 	  return true;
     }
@@ -517,9 +517,9 @@
 bool
 NDArray::any_element_is_inf_or_nan (void) const
 {
-  int nel = nelem ();
+  octave_idx_type nel = nelem ();
 
-  for (int i = 0; i < nel; i++)
+  for (octave_idx_type i = 0; i < nel; i++)
     {
       double val = elem (i);
       if (xisinf (val) || xisnan (val))
@@ -532,9 +532,9 @@
 bool
 NDArray::all_elements_are_int_or_inf_or_nan (void) const
 {
-  int nel = nelem ();
+  octave_idx_type nel = nelem ();
 
-  for (int i = 0; i < nel; i++)
+  for (octave_idx_type i = 0; i < nel; i++)
     {
       double val = elem (i);
       if (xisnan (val) || D_NINT (val) == val)
@@ -552,7 +552,7 @@
 bool
 NDArray::all_integers (double& max_val, double& min_val) const
 {
-  int nel = nelem ();
+  octave_idx_type nel = nelem ();
 
   if (nel > 0)
     {
@@ -562,7 +562,7 @@
   else
     return false;
 
-  for (int i = 0; i < nel; i++)
+  for (octave_idx_type i = 0; i < nel; i++)
     {
       double val = elem (i);
 
@@ -582,9 +582,9 @@
 bool
 NDArray::too_large_for_float (void) const
 {
-  int nel = nelem ();
+  octave_idx_type nel = nelem ();
 
-  for (int i = 0; i < nel; i++)
+  for (octave_idx_type i = 0; i < nel; i++)
     {
       double val = elem (i);
 
@@ -644,12 +644,12 @@
 NDArray
 NDArray::max (int dim) const
 {
-  ArrayN<int> dummy_idx;
+  ArrayN<octave_idx_type> dummy_idx;
   return max (dummy_idx, dim);
 }
 
 NDArray
-NDArray::max (ArrayN<int>& idx_arg, int dim) const
+NDArray::max (ArrayN<octave_idx_type>& idx_arg, int dim) const
 {
   dim_vector dv = dims ();
   dim_vector dr = dims ();
@@ -662,19 +662,19 @@
   NDArray result (dr);
   idx_arg.resize (dr);
 
-  int x_stride = 1;
-  int x_len = dv(dim);
+  octave_idx_type x_stride = 1;
+  octave_idx_type x_len = dv(dim);
   for (int i = 0; i < dim; i++)
     x_stride *= dv(i);
 
-  for (int i = 0; i < dr.numel (); i++)
+  for (octave_idx_type i = 0; i < dr.numel (); i++)
     {
-      int x_offset;
+      octave_idx_type x_offset;
       if (x_stride == 1)
 	x_offset = i * x_len;
       else
 	{
-	  int x_offset2 = 0;
+	  octave_idx_type x_offset2 = 0;
 	  x_offset = i;
 	  while (x_offset >= x_stride)
 	    {
@@ -684,7 +684,7 @@
 	  x_offset += x_offset2 * x_stride * x_len;
 	}
 
-      int idx_j;
+      octave_idx_type idx_j;
 
       double tmp_max = octave_NaN;
 
@@ -696,7 +696,7 @@
 	    break;
 	}
 
-      for (int j = idx_j+1; j < x_len; j++)
+      for (octave_idx_type j = idx_j+1; j < x_len; j++)
 	{
 	  double tmp = elem (j * x_stride + x_offset);
 
@@ -719,12 +719,12 @@
 NDArray
 NDArray::min (int dim) const
 {
-  ArrayN<int> dummy_idx;
+  ArrayN<octave_idx_type> dummy_idx;
   return min (dummy_idx, dim);
 }
 
 NDArray
-NDArray::min (ArrayN<int>& idx_arg, int dim) const
+NDArray::min (ArrayN<octave_idx_type>& idx_arg, int dim) const
 {
   dim_vector dv = dims ();
   dim_vector dr = dims ();
@@ -737,19 +737,19 @@
   NDArray result (dr);
   idx_arg.resize (dr);
 
-  int x_stride = 1;
-  int x_len = dv(dim);
+  octave_idx_type x_stride = 1;
+  octave_idx_type x_len = dv(dim);
   for (int i = 0; i < dim; i++)
     x_stride *= dv(i);
 
-  for (int i = 0; i < dr.numel (); i++)
+  for (octave_idx_type i = 0; i < dr.numel (); i++)
     {
-      int x_offset;
+      octave_idx_type x_offset;
       if (x_stride == 1)
 	x_offset = i * x_len;
       else
 	{
-	  int x_offset2 = 0;
+	  octave_idx_type x_offset2 = 0;
 	  x_offset = i;
 	  while (x_offset >= x_stride)
 	    {
@@ -759,7 +759,7 @@
 	  x_offset += x_offset2 * x_stride * x_len;
 	}
 
-      int idx_j;
+      octave_idx_type idx_j;
 
       double tmp_min = octave_NaN;
 
@@ -771,7 +771,7 @@
 	    break;
 	}
 
-      for (int j = idx_j+1; j < x_len; j++)
+      for (octave_idx_type j = idx_j+1; j < x_len; j++)
 	{
 	  double tmp = elem (j * x_stride + x_offset);
 
@@ -792,7 +792,7 @@
 }
 
 NDArray
-NDArray::concat (const NDArray& rb, const Array<int>& ra_idx)
+NDArray::concat (const NDArray& rb, const Array<octave_idx_type>& ra_idx)
 {
   if (rb.numel () > 0)
     insert (rb, ra_idx);
@@ -800,7 +800,7 @@
 }
 
 ComplexNDArray
-NDArray::concat (const ComplexNDArray& rb, const Array<int>& ra_idx)
+NDArray::concat (const ComplexNDArray& rb, const Array<octave_idx_type>& ra_idx)
 {
   ComplexNDArray retval (*this);
   if (rb.numel () > 0)
@@ -809,12 +809,12 @@
 }
 
 charNDArray
-NDArray::concat (const charNDArray& rb, const Array<int>& ra_idx)
+NDArray::concat (const charNDArray& rb, const Array<octave_idx_type>& ra_idx)
 {
   charNDArray retval (dims ());
-  int nel = numel ();
+  octave_idx_type nel = numel ();
 
-  for (int i = 0; i < nel; i++)
+  for (octave_idx_type i = 0; i < nel; i++)
     {
       double d = elem (i);
 
@@ -826,7 +826,7 @@
 	}
       else
 	{
-	  int ival = NINT (d);
+	  octave_idx_type ival = NINTbig (d);
 
 	  if (ival < 0 || ival > UCHAR_MAX)
 	    // XXX FIXME XXX -- is there something
@@ -847,7 +847,7 @@
 NDArray
 real (const ComplexNDArray& a)
 {
-  int a_len = a.length ();
+  octave_idx_type a_len = a.length ();
   NDArray retval;
   if (a_len > 0)
     retval = NDArray (mx_inline_real_dup (a.data (), a_len), a.dims ());
@@ -857,7 +857,7 @@
 NDArray
 imag (const ComplexNDArray& a)
 {
-  int a_len = a.length ();
+  octave_idx_type a_len = a.length ();
   NDArray retval;
   if (a_len > 0)
     retval = NDArray (mx_inline_imag_dup (a.data (), a_len), a.dims ());
@@ -865,14 +865,14 @@
 }
 
 NDArray&
-NDArray::insert (const NDArray& a, int r, int c)
+NDArray::insert (const NDArray& a, octave_idx_type r, octave_idx_type c)
 {
   Array<double>::insert (a, r, c);
   return *this;
 }
 
 NDArray&
-NDArray::insert (const NDArray& a, const Array<int>& ra_idx)
+NDArray::insert (const NDArray& a, const Array<octave_idx_type>& ra_idx)
 {
   Array<double>::insert (a, ra_idx);
   return *this;
@@ -883,9 +883,9 @@
 {
   NDArray retval (dims ());
 
-  int nel = nelem ();
+  octave_idx_type nel = nelem ();
 
-  for (int i = 0; i < nel; i++)
+  for (octave_idx_type i = 0; i < nel; i++)
     retval(i) = fabs (elem (i));
 
   return retval;
@@ -918,15 +918,15 @@
 }
 
 void
-NDArray::increment_index (Array<int>& ra_idx,
+NDArray::increment_index (Array<octave_idx_type>& ra_idx,
 			  const dim_vector& dimensions,
 			  int start_dimension)
 {
   ::increment_index (ra_idx, dimensions, start_dimension);
 }
 
-int
-NDArray::compute_index (Array<int>& ra_idx,
+octave_idx_type
+NDArray::compute_index (Array<octave_idx_type>& ra_idx,
 			const dim_vector& dimensions)
 {
   return ::compute_index (ra_idx, dimensions);
@@ -936,9 +936,9 @@
 std::ostream&
 operator << (std::ostream& os, const NDArray& a)
 {
-  int nel = a.nelem ();
+  octave_idx_type nel = a.nelem ();
 
-  for (int i = 0; i < nel; i++)
+  for (octave_idx_type i = 0; i < nel; i++)
     {
       os << " ";
       octave_write_double (os, a.elem (i));
@@ -950,14 +950,14 @@
 std::istream&
 operator >> (std::istream& is, NDArray& a)
 {
-  int nel = a.nelem ();
+  octave_idx_type nel = a.nelem ();
 
   if (nel < 1 )
     is.clear (std::ios::badbit);
   else
     {
       double tmp;
-      for (int i = 0; i < nel; i++)
+      for (octave_idx_type i = 0; i < nel; i++)
 	  {
 	    tmp = octave_read_double (is);
 	    if (is)
@@ -983,13 +983,13 @@
 min (double d, const NDArray& m)
 {
   dim_vector dv = m.dims ();
-  int nel = dv.numel ();
+  octave_idx_type nel = dv.numel ();
 
   EMPTY_RETURN_CHECK (NDArray);
 
   NDArray result (dv);
 
-  for (int i = 0; i < nel; i++)
+  for (octave_idx_type i = 0; i < nel; i++)
     {
       OCTAVE_QUIT;
       result (i) = xmin (d, m (i));
@@ -1002,13 +1002,13 @@
 min (const NDArray& m, double d)
 {
   dim_vector dv = m.dims ();
-  int nel = dv.numel ();
+  octave_idx_type nel = dv.numel ();
 
   EMPTY_RETURN_CHECK (NDArray);
 
   NDArray result (dv);
 
-  for (int i = 0; i < nel; i++)
+  for (octave_idx_type i = 0; i < nel; i++)
     {
       OCTAVE_QUIT;
       result (i) = xmin (d, m (i));
@@ -1021,7 +1021,7 @@
 min (const NDArray& a, const NDArray& b)
 {
   dim_vector dv = a.dims ();
-  int nel = dv.numel ();
+  octave_idx_type nel = dv.numel ();
 
   if (dv != b.dims ())
     {
@@ -1034,7 +1034,7 @@
 
   NDArray result (dv);
 
-  for (int i = 0; i < nel; i++)
+  for (octave_idx_type i = 0; i < nel; i++)
     {
       OCTAVE_QUIT;
       result (i) = xmin (a (i), b (i));
@@ -1047,13 +1047,13 @@
 max (double d, const NDArray& m)
 {
   dim_vector dv = m.dims ();
-  int nel = dv.numel ();
+  octave_idx_type nel = dv.numel ();
 
   EMPTY_RETURN_CHECK (NDArray);
 
   NDArray result (dv);
 
-  for (int i = 0; i < nel; i++)
+  for (octave_idx_type i = 0; i < nel; i++)
     {
       OCTAVE_QUIT;
       result (i) = xmax (d, m (i));
@@ -1066,13 +1066,13 @@
 max (const NDArray& m, double d)
 {
   dim_vector dv = m.dims ();
-  int nel = dv.numel ();
+  octave_idx_type nel = dv.numel ();
 
   EMPTY_RETURN_CHECK (NDArray);
 
   NDArray result (dv);
 
-  for (int i = 0; i < nel; i++)
+  for (octave_idx_type i = 0; i < nel; i++)
     {
       OCTAVE_QUIT;
       result (i) = xmax (d, m (i));
@@ -1085,7 +1085,7 @@
 max (const NDArray& a, const NDArray& b)
 {
   dim_vector dv = a.dims ();
-  int nel = dv.numel ();
+  octave_idx_type nel = dv.numel ();
 
   if (dv != b.dims ())
     {
@@ -1098,7 +1098,7 @@
 
   NDArray result (dv);
 
-  for (int i = 0; i < nel; i++)
+  for (octave_idx_type i = 0; i < nel; i++)
     {
       OCTAVE_QUIT;
       result (i) = xmax (a (i), b (i));