Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #if !defined (octave_MSparse_h)
00025 #define octave_MSparse_h 1
00026
00027 #include "MArray.h"
00028
00029 #include "Sparse.h"
00030
00031
00032
00033
00034
00035 #include "MSparse-defs.h"
00036
00037 SPARSE_OPS_FORWARD_DECLS (MSparse, MArray, )
00038
00039 template <class T>
00040 class
00041 MSparse : public Sparse<T>
00042 {
00043 public:
00044
00045 MSparse (void) : Sparse<T> () { }
00046
00047 MSparse (octave_idx_type n, octave_idx_type m) : Sparse<T> (n, m) { }
00048
00049 MSparse (const dim_vector& dv, octave_idx_type nz = 0) :
00050 Sparse<T> (dv, nz) { }
00051
00052 MSparse (const MSparse<T>& a) : Sparse<T> (a) { }
00053
00054 MSparse (const MSparse<T>& a, const dim_vector& dv) : Sparse<T> (a, dv) { }
00055
00056 MSparse (const Sparse<T>& a) : Sparse<T> (a) { }
00057
00058 template <class U>
00059 MSparse (const Sparse<U>& a) : Sparse<T> (a) { }
00060
00061 MSparse (const Array<T>& a, const idx_vector& r, const idx_vector& c,
00062 octave_idx_type nr = -1, octave_idx_type nc = -1,
00063 bool sum_terms = true, octave_idx_type nzm = -1)
00064 : Sparse<T> (a, r, c, nr, nc, sum_terms, nzm) { }
00065
00066 explicit MSparse (octave_idx_type r, octave_idx_type c, T val) : Sparse<T> (r, c, val) { }
00067
00068 MSparse (octave_idx_type r, octave_idx_type c, octave_idx_type num_nz) : Sparse<T> (r, c, num_nz) { }
00069
00070 ~MSparse (void) { }
00071
00072 MSparse<T>& operator = (const MSparse<T>& a)
00073 {
00074 Sparse<T>::operator = (a);
00075 return *this;
00076 }
00077
00078 MSparse<T>& insert (const Sparse<T>& a, octave_idx_type r, octave_idx_type c)
00079 {
00080 Sparse<T>::insert (a, r, c);
00081 return *this;
00082 }
00083
00084 MSparse<T>& insert (const Sparse<T>& a, const Array<octave_idx_type>& indx)
00085 {
00086 Sparse<T>::insert (a, indx);
00087 return *this;
00088 }
00089
00090 MSparse<T> transpose (void) const { return Sparse<T>::transpose (); }
00091
00092 MSparse<T> squeeze (void) const { return Sparse<T>::squeeze (); }
00093
00094 MSparse<T> reshape (const dim_vector& new_dims) const
00095 { return Sparse<T>::reshape (new_dims); }
00096
00097 MSparse<T> permute (const Array<octave_idx_type>& vec, bool inv = false) const
00098 { return Sparse<T>::permute (vec, inv); }
00099
00100 MSparse<T> ipermute (const Array<octave_idx_type>& vec) const
00101 { return Sparse<T>::ipermute (vec); }
00102
00103
00104 MSparse<T> diag (octave_idx_type k = 0) const
00105 {
00106 return Sparse<T>::diag (k);
00107 }
00108
00109
00110 template <class U>
00111 MSparse<U>
00112 map (U (&fcn) (T)) const
00113 { return Sparse<T>::template map<U> (fcn); }
00114
00115 template <class U>
00116 MSparse<U>
00117 map (U (&fcn) (const T&)) const
00118 { return Sparse<T>::template map<U> (fcn); }
00119
00120
00121
00122
00123
00124 };
00125
00126 #endif