diff liboctave/DiagArray2.cc @ 10350:12884915a8e4

merge MArray classes & improve Array interface
author Jaroslav Hajek <highegg@gmail.com>
date Sat, 23 Jan 2010 21:41:03 +0100
parents 4c0cdbe0acca
children a3635bc1ea19
line wrap: on
line diff
--- a/liboctave/DiagArray2.cc
+++ b/liboctave/DiagArray2.cc
@@ -74,9 +74,9 @@
     // The main diagonal is shallow-copied.
     d = *this;
   else if (k > 0 && k < cols ())
-    d = Array<T> (std::min (cols () - k, rows ()), T ());
+    d = Array<T> (std::min (cols () - k, rows ()), 1, T ());
   else if (k < 0 && -k < rows ())
-    d = Array<T> (std::min (rows () + k, cols ()), T ());
+    d = Array<T> (std::min (rows () + k, cols ()), 1, T ());
   else
     (*current_liboctave_error_handler)
       ("diag: requested diagonal out of range");
@@ -135,7 +135,8 @@
 
 template <class T>
 void
-DiagArray2<T>::resize (octave_idx_type r, octave_idx_type c)
+DiagArray2<T>::resize (octave_idx_type r, octave_idx_type c,
+                       const T& rfv)
 {
   if (r < 0 || c < 0)
     {
@@ -145,24 +146,7 @@
 
   if (r != dim1 () || c != dim2 ())
     {
-      Array<T>::resize (std::min (r, c));
-      d1 = r; d2 = c;
-    }
-}
-
-template <class T>
-void
-DiagArray2<T>::resize_fill (octave_idx_type r, octave_idx_type c, const T& val)
-{
-  if (r < 0 || c < 0)
-    {
-      (*current_liboctave_error_handler) ("can't resize to negative dimensions");
-      return;
-    }
-
-  if (r != dim1 () || c != dim2 ())
-    {
-      Array<T>::resize_fill (std::min (r, c), val);
+      Array<T>::resize (std::min (r, c), 1, rfv);
       d1 = r; d2 = c;
     }
 }