Sparse matrices |
{ R rep; typedef typename R::size_type size_type; typedef typename R::value_type value_type; typedef MatSparseself_t; MatSparse() {} MatSparse(const R & r): rep(r) {} MatSparse(int m, int n, int nz) : rep(n,m,nz) {} MatSparse(int m, int n, int nz, value_type* t, size_type* idx): rep(m,n,nz,t,idx) {} MatSparse(const char * str): rep(str) {} MatSparse(const self_t & M): rep(M.rep) {} template MatSparse(const VAL & M) {assign(*this,M.rep);} self_t & operator=(const self_t & M) {rep=M.rep; return *this;} template self_t & operator=(const VAL & M) {assign(*this,M.rep); return *this;} self_t & transpose () {rep.transpose(); return *this;} size_type nbrow() const {return rep.nbrow();} size_type nbcol() const {return rep.nbcol();} size_type nzero() const {return rep.nzero();} value_type operator() (size_type i, size_type j) const {return rep(i,j);} self_t & operator*=(const value_type & c); self_t & operator/=(const value_type & c); };
typedef typename R::size_type; typedef typename R::value_type; size_type R::nbrow(); size_type R::nbcol(); size_type R::nbnz(); value_typeR::operator()(size_type,size_type); const value_typeR::operator()(size_type,size_type) const; void R::transpose();
<B><PRE> MatSparse$<$ superlu$<$ double$>$ A(...) VectStd$<$ array1d$<$ double$>$ V(...), W W=Solve(A,V,LU()) </PRE></B>
{ typedef unsigned int size_type; typedef double value_type; superlu(); superlu(const int nrow, const int ncol); superlu(const int nrow, const int ncol, const int nz); superlu(size_type nrow, size_type ncol, size_type nz, value_type* coeffs, size_type *idx); ~superlu(); double & operator() (const int & i,const int & j,const double &d) ; double & operator() (const int &i ,const int &j); double operator() (const int &i ,const int &j) const ; inline void destroystore(); size_type nbrow() const {return nrow;} size_type nbcol() const {return ncol;} void reserve(size_type, size_type, size_type); };