
Public Types | |
| typedef SparseMatrix< number > | MatrixType |
| typedef Vector< vector_number > | VectorType |
Public Member Functions | |
| ProductSparseMatrix (const MatrixType &m1, const MatrixType &m2, VectorMemory< VectorType > &mem) | |
| ProductSparseMatrix () | |
| void | initialize (const MatrixType &m1, const MatrixType &m2, VectorMemory< VectorType > &mem) |
| void | clear () |
| virtual void | vmult (VectorType &w, const VectorType &v) const |
| virtual void | Tvmult (VectorType &w, const VectorType &v) const |
| virtual void | vmult_add (VectorType &w, const VectorType &v) const |
| virtual void | Tvmult_add (VectorType &w, const VectorType &v) const |
Private Member Functions | |
| virtual const void * | get () const |
Private Attributes | |
| SmartPointer< const MatrixType > | m1 |
| SmartPointer< const MatrixType > | m2 |
| SmartPointer< VectorMemory < VectorType > > | mem |
Poor man's matrix product of two sparse matrices. Stores two matrices m1 and m2 of arbitrary type SparseMatrix and implements matrix-vector multiplications for the product M1M2 by performing multiplication with both factors consecutively.
The documentation of ProductMatrix applies with exception that these matrices here may be rectangular.
| typedef SparseMatrix<number> ProductSparseMatrix< number, vector_number >::MatrixType |
Define the type of matrices used.
| typedef Vector<vector_number> ProductSparseMatrix< number, vector_number >::VectorType |
Define the type of vectors we plly this matrix to.
| ProductSparseMatrix< number, vector_number >::ProductSparseMatrix | ( | const MatrixType & | m1, | |
| const MatrixType & | m2, | |||
| VectorMemory< VectorType > & | mem | |||
| ) |
Constructor. Additionally to the two constituting matrices, a memory pool for the auxiliary vector must be provided.
| ProductSparseMatrix< number, vector_number >::ProductSparseMatrix | ( | ) |
Constructor leaving an unitialized matrix. initialize() must be called, before the matrix can be used.
| void ProductSparseMatrix< number, vector_number >::initialize | ( | const MatrixType & | m1, | |
| const MatrixType & | m2, | |||
| VectorMemory< VectorType > & | mem | |||
| ) |
| void ProductSparseMatrix< number, vector_number >::clear | ( | ) | [virtual] |
Reset pointer and release the matrix pointed to.
Implements PointerMatrixBase< Vector< vector_number > >.
| virtual void ProductSparseMatrix< number, vector_number >::vmult | ( | VectorType & | w, | |
| const VectorType & | v | |||
| ) | const [virtual] |
Matrix-vector product w = m1 * m2 * v.
| virtual void ProductSparseMatrix< number, vector_number >::Tvmult | ( | VectorType & | w, | |
| const VectorType & | v | |||
| ) | const [virtual] |
Tranposed matrix-vector product w = m2T * m1T * v.
| virtual void ProductSparseMatrix< number, vector_number >::vmult_add | ( | VectorType & | w, | |
| const VectorType & | v | |||
| ) | const [virtual] |
Adding matrix-vector product w += m1 * m2 * v
| virtual void ProductSparseMatrix< number, vector_number >::Tvmult_add | ( | VectorType & | w, | |
| const VectorType & | v | |||
| ) | const [virtual] |
Adding, tranposed matrix-vector product w += m2T * m1T * v.
| virtual const void* ProductSparseMatrix< number, vector_number >::get | ( | ) | const [private, virtual] |
Return some kind of identifier.
Implements PointerMatrixBase< Vector< vector_number > >.
SmartPointer<const MatrixType> ProductSparseMatrix< number, vector_number >::m1 [private] |
The left matrix of the product.
SmartPointer<const MatrixType> ProductSparseMatrix< number, vector_number >::m2 [private] |
The right matrix of the product.
SmartPointer<VectorMemory<VectorType> > ProductSparseMatrix< number, vector_number >::mem [private] |
Memory for auxiliary vector.
documentation generated on Mon Nov 23 22:58:01 2009 by
doxygen
1.6.1