diff liboctave/DiagArray2.h @ 10350:12884915a8e4

merge MArray classes & improve Array interface
author Jaroslav Hajek <highegg@gmail.com>
date Sat, 23 Jan 2010 21:41:03 +0100
parents cbc402e64d83
children a3635bc1ea19
line wrap: on
line diff
--- a/liboctave/DiagArray2.h	Mon Feb 22 23:07:21 2010 -0500
+++ b/liboctave/DiagArray2.h	Sat Jan 23 21:41:03 2010 +0100
@@ -90,7 +90,7 @@
   octave_idx_type d1, d2;
 
   DiagArray2 (T *d, octave_idx_type r, octave_idx_type c) 
-    : Array<T> (d, std::min (r, c)), d1 (r), d2 (c) { }
+    : Array<T> (d, std::min (r, c), 1), d1 (r), d2 (c) { }
 
 public:
 
@@ -100,20 +100,20 @@
     : Array<T> (), d1 (0), d2 (0) { }
 
   DiagArray2 (octave_idx_type r, octave_idx_type c) 
-    : Array<T> (std::min (r, c)), d1 (r), d2 (c) { }
+    : Array<T> (std::min (r, c), 1), d1 (r), d2 (c) { }
 
   DiagArray2 (octave_idx_type r, octave_idx_type c, const T& val) 
-    : Array<T> (std::min (r, c), val), d1 (r), d2 (c) { }
+    : Array<T> (std::min (r, c), 1, val), d1 (r), d2 (c) { }
 
   DiagArray2 (const dim_vector& dv)
-    : Array<T> (std::min (dv(0), dv(1))), d1 (dv(0)), d2 (dv(0))
+    : Array<T> (std::min (dv(0), dv(1)), 1), d1 (dv(0)), d2 (dv(0))
     {
       if (dv.length () != 2)
         (*current_liboctave_error_handler) ("too many dimensions");
     }
 
   DiagArray2 (const Array<T>& a) 
-    : Array<T> (a), d1 (a.numel ()), d2 (a.numel ()) { }
+    : Array<T> (a.as_column ()), d1 (a.numel ()), d2 (a.numel ()) { }
 
   DiagArray2 (const DiagArray2<T>& a) 
     : Array<T> (a), d1 (a.d1), d2 (a.d2) { }
@@ -213,8 +213,8 @@
   T dgxelem (octave_idx_type i) const
     { return Array<T>::xelem (i); }
 
-  void resize (octave_idx_type n, octave_idx_type m);
-  void resize_fill (octave_idx_type n, octave_idx_type m, const T& val);
+  void resize (octave_idx_type n, octave_idx_type m, 
+               const T& rfv = Array<T>::resize_fill_value ());
 
   DiagArray2<T> transpose (void) const;
   DiagArray2<T> hermitian (T (*fcn) (const T&) = 0) const;