|
|
| TCompRowMatrixMPI () |
| | Creates a matrix of dimension 0 x 0.
|
| |
| | TCompRowMatrixMPI (int rows, int cols) |
| | Creates a matrix of dimension rows x cols. More...
|
| |
|
| TCompRowMatrixMPI (int rows, int cols, const int *_rowptr, const int *_colidx, int proc_nrows, const int *proc_rows) |
| |
| | TCompRowMatrixMPI (int rows, int cols, const int *_rowptr, const int *_colidx, const MT *_data=0) |
| | Creates a matrix of dimension rows x cols, and sets up data storage with the specified fill structure. More...
|
| |
|
| ~TCompRowMatrixMPI () |
| | Matrix destructor.
|
| |
|
MatrixStorage | StorageType () const |
| | Storage class identifier.
|
| |
| void | Initialise (const int *_rowptr, const int *_colidx, const MT *_data=0) |
| | Re-allocate fill structure and assign values. More...
|
| |
| void | MPIRange (int *_r0, int *_r1) const |
| | Returns the row range of the current process. More...
|
| |
| void | Zero () |
| | Zero all elements, but keep fill structure. More...
|
| |
| MT | Get (int r, int c) const |
| | Retrieve a matrix element. More...
|
| |
| TVector< MT > | Row (int r) const |
| | Returns a vector containing a copy of row `r'. More...
|
| |
| int | SparseRow (int r, int *colidx, MT *val) const |
| | Returns a row of the matrix in sparse format. More...
|
| |
| TVector< MT > | Col (int c) const |
| | Returns a vector containing a copy of column 'c'. More...
|
| |
|
virtual void | RowScale (const TVector< MT > &scale) |
| |
|
virtual void | ColScale (const TVector< MT > &scale) |
| |
|
virtual void | Unlink () |
| |
| bool | Exists (int r, int c) const |
| | Checks allocation of a matrix element. More...
|
| |
|
MT & | operator() (int r, int c) |
| |
|
int | Get_index (int r, int c) const |
| |
|
MT | GetNext (int &r, int &c) const |
| |
| void | Ax (const TVector< MT > &x, TVector< MT > &b) const |
| | Matrix-vector product. More...
|
| |
|
void | Ax (const TVector< MT > &x, TVector< MT > &b, int i1, int i2) const |
| |
|
void | ATx (const TVector< MT > &x, TVector< MT > &b) const |
| |
| void | Add_proc (int r, int c, MT val) |
| | Add a value to a matrix element (process-specific) More...
|
| |
| void | MPIinit () |
| | MPI data initialisation. More...
|
| |
|
| TGenericSparseMatrix () |
| | Create a sparse matrix of size 0 x 0.
|
| |
| | TGenericSparseMatrix (int rows, int cols, int nv=0, const MT *data=0) |
| | Create a sparse matrix of logical size rows x cols. More...
|
| |
|
| TGenericSparseMatrix (int rows, int cols, int nv, MT *data, CopyMode cmode=DEEP_COPY) |
| |
|
| TGenericSparseMatrix (const TGenericSparseMatrix< MT > &m) |
| | Constructs a matrix as a copy of 'm'.
|
| |
|
virtual | ~TGenericSparseMatrix () |
| | Destructor.
|
| |
| virtual void | New (int nrows, int ncols) |
| | Reset the matrix dimensions. More...
|
| |
|
void | Initialise (int nv, const MT *data) |
| |
|
void | Initialise (int nv, MT *data, CopyMode cmode) |
| |
|
void | Zero () |
| |
|
int | nVal () const |
| |
|
MT & | Val (int i) |
| |
|
MT * | ValPtr () |
| |
|
const MT * | ValPtr () const |
| |
|
virtual void | Add (int r, int c, const MT &val) |
| |
|
TGenericSparseMatrix & | operator*= (const MT &sc) |
| |
|
TVector< MT > | operator* (const TVector< MT > &x) const |
| |
|
TVector< MT > | ATx (const TVector< MT > &x) const |
| |
|
double | FillFraction () const |
| |
|
virtual void | Display (std::ostream &os) const |
| |
|
virtual void | PrintFillinGraph (const char *fname, int maxdim=600, bool binary=true, bool antialias=true) |
| |
| virtual void | ExportRCV (std::ostream &os) |
| | Write sparse matrix to ASCII output stream. More...
|
| |
|
| TMatrix () |
| | Create a matrix of size 0 x 0.
|
| |
| | TMatrix (int nrows, int ncols) |
| | Create a matrix of logical size nrows x ncols. More...
|
| |
| | TMatrix (const TMatrix< MT > &m) |
| | Create a matrix as a copy of another matrix. More...
|
| |
| virtual | ~TMatrix () |
| | Destroy the matrix. More...
|
| |
| int | Dim (RC rc) const |
| | Return a matrix dimension. More...
|
| |
| int | nRows () const |
| | Return number of rows of the matrix. More...
|
| |
| int | nCols () const |
| | Return number of columns of the matrix. More...
|
| |
| bool | isSparse () const |
| | Return sparse storage flag. More...
|
| |
| bool | isFull () const |
| | Return dense storage flag. More...
|
| |
| MT | operator() (int r, int c) const |
| | Matrix element access (read only) More...
|
| |
| virtual void | SetRow (int r, const TVector< MT > &row) |
| | Substitute a row of the matrix. More...
|
| |
| virtual TVector< MT > | Diag () const |
| | Returns the matrix diagonal as a vector. More...
|
| |
| virtual TVector< MT > | ColNorm () const |
| | Returns vector of column norms. More...
|
| |
|
TVector< MT > | operator* (const TVector< MT > &x) const |
| |
|
TVector< MT > | ATx (const TVector< MT > &x) const |
| |
|
virtual void | Transpone () |
| |
|
virtual MT | RowMult (int r, MT *x) const |
| |
| void | Export (std::ostream &os) const |
| | Write matrix to ASCII stream. More...
|
| |
|
void | Print (std::ostream &os=std::cout, int n=80) const |
| |
|
void | PrintNzeroGraph (char *fname) |
| |
|
virtual int | pcg (const TVector< MT > &b, TVector< MT > &x, double &tol, TPreconditioner< MT > *precon=0, int maxit=0) const |
| |
|
virtual void | pcg (const TVector< MT > *b, TVector< MT > *x, int nrhs, double tol, int maxit=0, TPreconditioner< MT > *precon=0, IterativeSolverResult *res=0) const |
| |
|
virtual int | bicgstab (const TVector< MT > &b, TVector< MT > &x, double &tol, TPreconditioner< MT > *precon=0, int maxit=0) const |
| |
|
virtual void | bicgstab (const TVector< MT > *b, TVector< MT > *x, int nrhs, double tol, int maxit=0, TPreconditioner< MT > *precon=0, IterativeSolverResult *res=0) const |
| |
|
template<> |
| int | pcg (const FVector &b, FVector &x, double &tol, TPreconditioner< float > *precon, int maxit) const |
| |
|
template<> |
| void | pcg (const FVector *b, FVector *x, int nrhs, double tol, int maxit, TPreconditioner< float > *precon, IterativeSolverResult *res) const |
| |
|
template<> |
| int | bicgstab (const FVector &b, FVector &x, double &tol, TPreconditioner< float > *precon, int maxit) const |
| |
|
template<> |
| void | bicgstab (const FVector *b, FVector *x, int nrhs, double tol, int maxit, TPreconditioner< float > *precon, IterativeSolverResult *res) const |
| |
template<class MT>
class TCompRowMatrixMPI< MT >
Distributed compressed-row sparse matrix class.
A sparse matrix type that distributes itself across the available processes. The class interface is designed to be compatible with a subset of the TCompRowMatrix interface, hiding the parallelism within the class implementation.
Upon data allocation, an instance of TCompRowMatrixMPI assigns a block of rows r0 <= r < r1 to each process, such that the number of nonzero elements is approximately evenly distributed. Each block is allocated as a compressed row sub- matrix representing part of the complete matrix. Matrix operations such as Ax or ATx are performed in parallel.