diff liboctave/ArrayN.h @ 4902:bd043a433918

[project @ 2004-06-14 18:46:20 by jwe]
author jwe
date Mon, 14 Jun 2004 18:49:09 +0000
parents e941e1470d7b
children e35b034d3523
line wrap: on
line diff
--- a/liboctave/ArrayN.h
+++ b/liboctave/ArrayN.h
@@ -64,13 +64,18 @@
   ArrayN (const dim_vector& dv, const T& val)
     : Array<T> (dv) { fill (val); }
 
-  ArrayN (const Array2<T>& a) : Array<T> (a, a.dims ()) { }
+  template <class U>
+  explicit ArrayN (const Array2<U>& a) : Array<T> (a, a.dims ()) { }
 
-  ArrayN (const ArrayN<T>& a) : Array<T> (a, a.dims ()) { }
+  template <class U>
+  ArrayN (const ArrayN<U>& a) : Array<T> (a, a.dims ()) { }
 
-  ArrayN (const Array<T>& a) : Array<T> (a) { }
+  template <class U>
+  ArrayN (const Array<U>& a) : Array<T> (a) { }
 
-  ArrayN (const Array<T>& a, const dim_vector& dv) : Array<T> (a, dv) { }
+  template <class U>
+  ArrayN (const Array<U>& a, const dim_vector& dv)
+    : Array<T> (a, dv) { }
 
   ~ArrayN (void) { }
 
@@ -82,6 +87,15 @@
       return *this;
     }
 
+  ArrayN<T> reshape (const dim_vector& new_dims) const
+    { return Array<T>::reshape (new_dims); }
+
+  ArrayN<T> permute (const Array<int>& vec, bool inv = false) const
+    { return Array<T>::permute (vec, inv); }
+
+  ArrayN<T> ipermute (const Array<int>& vec) const
+    { return Array<T>::ipermute (vec); }
+
   void resize (const dim_vector& dv)
     { this->resize_no_fill (dv); }
 
@@ -90,6 +104,8 @@
 
   ArrayN<T> squeeze (void) const { return Array<T>::squeeze (); }
 
+  ArrayN<T> transpose (void) const { return Array<T>::transpose (); }
+
   ArrayN<T>& insert (const ArrayN<T>& a, const dim_vector& dv)
     {
       Array<T>::insert (a, dv);