00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #if !defined (octave_MArray2_h)
00026 #define octave_MArray2_h 1
00027
00028 #include "Array2.h"
00029
00030
00031
00032
00033
00034 #include "MArray-decl.h"
00035
00036 MARRAY_OPS_FORWARD_DECLS (MArray2, )
00037
00038 template <class T>
00039 class
00040 MArray2 : public Array2<T>
00041 {
00042 protected:
00043
00044 MArray2 (T *d, octave_idx_type n, octave_idx_type m) : Array2<T> (d, n, m) { }
00045
00046 public:
00047
00048 MArray2 (void) : Array2<T> () { }
00049
00050 MArray2 (octave_idx_type n, octave_idx_type m) : Array2<T> (n, m) { }
00051
00052 MArray2 (octave_idx_type n, octave_idx_type m, const T& val) : Array2<T> (n, m, val) { }
00053
00054 MArray2 (const dim_vector& dv) : Array2<T> (dv) { }
00055
00056 MArray2 (const dim_vector& dv, const T& val) : Array2<T> (dv, val) { }
00057
00058 MArray2 (const MArray2<T>& a) : Array2<T> (a) { }
00059
00060 MArray2 (const Array2<T>& a) : Array2<T> (a) { }
00061
00062 template <class U>
00063 MArray2 (const Array2<U>& a) : Array2<T> (a) { }
00064
00065 template <class U>
00066 MArray2 (const MArray2<U>& a) : Array2<T> (a) { }
00067
00068 ~MArray2 (void) { }
00069
00070 MArray2<T>& operator = (const MArray2<T>& a)
00071 {
00072 Array2<T>::operator = (a);
00073 return *this;
00074 }
00075
00076 MArray2<T>& insert (const Array2<T>& a, octave_idx_type r, octave_idx_type c)
00077 {
00078 Array2<T>::insert (a, r, c);
00079 return *this;
00080 }
00081
00082 MArray2<T> transpose (void) const { return Array2<T>::transpose (); }
00083 MArray2<T> hermitian (T (*fcn) (const T&) = 0) const { return Array2<T>::hermitian (fcn); }
00084
00085 MArray2<T> diag (octave_idx_type k) const
00086 {
00087 return Array2<T>::diag (k);
00088 }
00089
00090 template <class U, class F>
00091 MArray2<U> map (F fcn) const
00092 {
00093 return Array2<T>::template map<U> (fcn);
00094 }
00095
00096
00097
00098
00099
00100 };
00101
00102 #endif
00103
00104
00105
00106
00107
00108