|
AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects
Version of the Day
|
Aggregate matrix class for a matrix and its permuted view. More...
#include <AbstractLinAlgPack_MatrixPermAggr.hpp>

Public types | |
| typedef Teuchos::RCP< const Permutation > | perm_ptr_t |
| | |
Constructors / initializers | |
| MatrixPermAggr () | |
| Construct to uninitialized. | |
| MatrixPermAggr (const mat_ptr_t &mat_orig, const perm_ptr_t &row_perm, const perm_ptr_t &col_perm, const mat_ptr_t &mat_perm) | |
Calls this->initialize(). | |
| void | initialize (const mat_ptr_t &mat_orig, const perm_ptr_t &row_perm, const perm_ptr_t &col_perm, const mat_ptr_t &mat_perm) |
| Initialize. | |
| void | set_uninitialized () |
| Set uninitialized. | |
Access | |
| const mat_ptr_t & | mat_orig () const |
| | |
| const perm_ptr_t & | row_perm () const |
| | |
| const perm_ptr_t & | col_perm () const |
| | |
| const mat_ptr_t & | mat_perm () const |
| | |
Overridden from MatrixBase | |
| size_type | rows () const |
| | |
| size_type | cols () const |
| | |
| size_type | nz () const |
| | |
Overridden from MatrixOp | |
| const VectorSpace & | space_cols () const |
| | |
| const VectorSpace & | space_rows () const |
| | |
| MatrixOp::mat_ptr_t | sub_view (const Range1D &row_rng, const Range1D &col_rng) const |
| | |
| MatrixOp & | operator= (const MatrixOp &M) |
| | |
| std::ostream & | output (std::ostream &out) const |
| | |
| bool | Mp_StM (MatrixOp *mwo_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs) const |
| | |
| bool | Mp_StMtP (MatrixOp *mwo_lhs, value_type alpha, BLAS_Cpp::Transp M_trans, const GenPermMatrixSlice &P_rhs, BLAS_Cpp::Transp P_rhs_trans) const |
| | |
| bool | Mp_StPtM (MatrixOp *mwo_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs, BLAS_Cpp::Transp P_rhs_trans, BLAS_Cpp::Transp M_trans) const |
| | |
| bool | Mp_StPtMtP (MatrixOp *mwo_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, BLAS_Cpp::Transp M_trans, const GenPermMatrixSlice &P_rhs2, BLAS_Cpp::Transp P_rhs2_trans) const |
| | |
| void | Vp_StMtV (VectorMutable *vs_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2, value_type beta) const |
| | |
| void | Vp_StMtV (VectorMutable *vs_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2, value_type beta) const |
| | |
| void | Vp_StPtMtV (VectorMutable *vs_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, BLAS_Cpp::Transp M_rhs2_trans, const Vector &v_rhs3, value_type beta) const |
| | |
| void | Vp_StPtMtV (VectorMutable *vs_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, BLAS_Cpp::Transp M_rhs2_trans, const SpVectorSlice &sv_rhs3, value_type beta) const |
| | |
| value_type | transVtMtV (const Vector &v_rhs1, BLAS_Cpp::Transp trans_rhs2, const Vector &v_rhs3) const |
| | |
| value_type | transVtMtV (const SpVectorSlice &sv_rhs1, BLAS_Cpp::Transp trans_rhs2, const SpVectorSlice &sv_rhs3) const |
| | |
| void | syr2k (BLAS_Cpp::Transp M_trans, value_type alpha, const GenPermMatrixSlice &P1, BLAS_Cpp::Transp P1_trans, const GenPermMatrixSlice &P2, BLAS_Cpp::Transp P2_trans, value_type beta, MatrixSymOp *symwo_lhs) const |
| | |
| bool | Mp_StMtM (MatrixOp *mwo_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const MatrixOp &mwo_rhs2, BLAS_Cpp::Transp trans_rhs2, value_type beta) const |
| | |
| bool | Mp_StMtM (MatrixOp *mwo_lhs, value_type alpha, const MatrixOp &mwo_rhs1, BLAS_Cpp::Transp trans_rhs1, BLAS_Cpp::Transp trans_rhs2, value_type beta) const |
| | |
| bool | syrk (BLAS_Cpp::Transp M_trans, value_type alpha, value_type beta, MatrixSymOp *sym_lhs) const |
| | |
Aggregate matrix class for a matrix and its permuted view.
mat_perm = row_perm * mat_orig * col_perm'.
Definition at line 54 of file AbstractLinAlgPack_MatrixPermAggr.hpp.
Definition at line 63 of file AbstractLinAlgPack_MatrixPermAggr.hpp.
Construct to uninitialized.
Definition at line 56 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| AbstractLinAlgPack::MatrixPermAggr::MatrixPermAggr | ( | const mat_ptr_t & | mat_orig, |
| const perm_ptr_t & | row_perm, | ||
| const perm_ptr_t & | col_perm, | ||
| const mat_ptr_t & | mat_perm | ||
| ) |
Calls this->initialize().
Definition at line 59 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| void AbstractLinAlgPack::MatrixPermAggr::initialize | ( | const mat_ptr_t & | mat_orig, |
| const perm_ptr_t & | row_perm, | ||
| const perm_ptr_t & | col_perm, | ||
| const mat_ptr_t & | mat_perm | ||
| ) |
Initialize.
mat_perm = row_perm' * mat_orig * col_perm.
| mat_orig | [in] Smart pointer to original unpermuted matrix. |
| row_perm | [in] Smart pointer to row permutation. If row_perm.get() == NULL then the identity permutation is assumed. |
| col_perm | [in] Smart pointer to column permutation. If col_perm.get() == NULL then the identity permutation is assumed. |
| mat_perm | [in] Smart pointer to permuted matrix. It is allowed for mat_perm.get() == NULL in which case all of the linear algebra methods are implemented in terms of mat_orig, row_perm and col_perm. |
Preconditions:
mat_perm.get() != NULL (throw std::invalid_argument) row_perm.get() != NULL] mat_orig->space_cols().is_compatible(row_perm->space()) == true (throw VectorSpace::IncompatibleVectorSpaces) col_perm.get() != NULL] mat_orig->space_rows().is_compatible(col_perm->space()) == true (throw VectorSpace::IncompatibleVectorSpaces) Postconditions:
this->mat_orig().get() == mat_orig.get() this->row_perm().get() == row_perm.get() this->col_perm().get() == col_perm.get() this->mat_perm().get() == mat_perm.get() Definition at line 69 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
Set uninitialized.
ToDo: Finish documentation.
Definition at line 104 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| const mat_ptr_t& AbstractLinAlgPack::MatrixPermAggr::mat_orig | ( | ) | const |
| const perm_ptr_t& AbstractLinAlgPack::MatrixPermAggr::row_perm | ( | ) | const |
| const perm_ptr_t& AbstractLinAlgPack::MatrixPermAggr::col_perm | ( | ) | const |
| const mat_ptr_t& AbstractLinAlgPack::MatrixPermAggr::mat_perm | ( | ) | const |
| size_type AbstractLinAlgPack::MatrixPermAggr::rows | ( | ) | const [virtual] |
Reimplemented from AbstractLinAlgPack::MatrixBase.
Definition at line 115 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| size_type AbstractLinAlgPack::MatrixPermAggr::cols | ( | ) | const [virtual] |
Reimplemented from AbstractLinAlgPack::MatrixBase.
Definition at line 120 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| size_type AbstractLinAlgPack::MatrixPermAggr::nz | ( | ) | const [virtual] |
Reimplemented from AbstractLinAlgPack::MatrixBase.
Definition at line 125 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| const VectorSpace & AbstractLinAlgPack::MatrixPermAggr::space_cols | ( | ) | const [virtual] |
Implements AbstractLinAlgPack::MatrixBase.
Definition at line 132 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| const VectorSpace & AbstractLinAlgPack::MatrixPermAggr::space_rows | ( | ) | const [virtual] |
Implements AbstractLinAlgPack::MatrixBase.
Definition at line 137 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| MatrixOp::mat_ptr_t AbstractLinAlgPack::MatrixPermAggr::sub_view | ( | const Range1D & | row_rng, |
| const Range1D & | col_rng | ||
| ) | const [virtual] |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 143 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 152 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| std::ostream & AbstractLinAlgPack::MatrixPermAggr::output | ( | std::ostream & | out | ) | const [virtual] |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 167 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| bool AbstractLinAlgPack::MatrixPermAggr::Mp_StM | ( | MatrixOp * | mwo_lhs, |
| value_type | alpha, | ||
| BLAS_Cpp::Transp | trans_rhs | ||
| ) | const [protected, virtual] |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 189 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| bool AbstractLinAlgPack::MatrixPermAggr::Mp_StMtP | ( | MatrixOp * | mwo_lhs, |
| value_type | alpha, | ||
| BLAS_Cpp::Transp | M_trans, | ||
| const GenPermMatrixSlice & | P_rhs, | ||
| BLAS_Cpp::Transp | P_rhs_trans | ||
| ) | const [protected, virtual] |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 202 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| bool AbstractLinAlgPack::MatrixPermAggr::Mp_StPtM | ( | MatrixOp * | mwo_lhs, |
| value_type | alpha, | ||
| const GenPermMatrixSlice & | P_rhs, | ||
| BLAS_Cpp::Transp | P_rhs_trans, | ||
| BLAS_Cpp::Transp | M_trans | ||
| ) | const [protected, virtual] |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 216 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| bool AbstractLinAlgPack::MatrixPermAggr::Mp_StPtMtP | ( | MatrixOp * | mwo_lhs, |
| value_type | alpha, | ||
| const GenPermMatrixSlice & | P_rhs1, | ||
| BLAS_Cpp::Transp | P_rhs1_trans, | ||
| BLAS_Cpp::Transp | M_trans, | ||
| const GenPermMatrixSlice & | P_rhs2, | ||
| BLAS_Cpp::Transp | P_rhs2_trans | ||
| ) | const [protected, virtual] |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 230 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| void AbstractLinAlgPack::MatrixPermAggr::Vp_StMtV | ( | VectorMutable * | vs_lhs, |
| value_type | alpha, | ||
| BLAS_Cpp::Transp | trans_rhs1, | ||
| const Vector & | v_rhs2, | ||
| value_type | beta | ||
| ) | const [protected, virtual] |
Implements AbstractLinAlgPack::MatrixOp.
Definition at line 245 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| void AbstractLinAlgPack::MatrixPermAggr::Vp_StMtV | ( | VectorMutable * | vs_lhs, |
| value_type | alpha, | ||
| BLAS_Cpp::Transp | trans_rhs1, | ||
| const SpVectorSlice & | sv_rhs2, | ||
| value_type | beta | ||
| ) | const [protected] |
Definition at line 301 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| void AbstractLinAlgPack::MatrixPermAggr::Vp_StPtMtV | ( | VectorMutable * | vs_lhs, |
| value_type | alpha, | ||
| const GenPermMatrixSlice & | P_rhs1, | ||
| BLAS_Cpp::Transp | P_rhs1_trans, | ||
| BLAS_Cpp::Transp | M_rhs2_trans, | ||
| const Vector & | v_rhs3, | ||
| value_type | beta | ||
| ) | const [protected, virtual] |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 316 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| void AbstractLinAlgPack::MatrixPermAggr::Vp_StPtMtV | ( | VectorMutable * | vs_lhs, |
| value_type | alpha, | ||
| const GenPermMatrixSlice & | P_rhs1, | ||
| BLAS_Cpp::Transp | P_rhs1_trans, | ||
| BLAS_Cpp::Transp | M_rhs2_trans, | ||
| const SpVectorSlice & | sv_rhs3, | ||
| value_type | beta | ||
| ) | const [protected] |
Definition at line 330 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| value_type AbstractLinAlgPack::MatrixPermAggr::transVtMtV | ( | const Vector & | v_rhs1, |
| BLAS_Cpp::Transp | trans_rhs2, | ||
| const Vector & | v_rhs3 | ||
| ) | const [protected, virtual] |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 344 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| value_type AbstractLinAlgPack::MatrixPermAggr::transVtMtV | ( | const SpVectorSlice & | sv_rhs1, |
| BLAS_Cpp::Transp | trans_rhs2, | ||
| const SpVectorSlice & | sv_rhs3 | ||
| ) | const [protected] |
Definition at line 354 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| void AbstractLinAlgPack::MatrixPermAggr::syr2k | ( | BLAS_Cpp::Transp | M_trans, |
| value_type | alpha, | ||
| const GenPermMatrixSlice & | P1, | ||
| BLAS_Cpp::Transp | P1_trans, | ||
| const GenPermMatrixSlice & | P2, | ||
| BLAS_Cpp::Transp | P2_trans, | ||
| value_type | beta, | ||
| MatrixSymOp * | symwo_lhs | ||
| ) | const [protected, virtual] |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 364 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| bool AbstractLinAlgPack::MatrixPermAggr::Mp_StMtM | ( | MatrixOp * | mwo_lhs, |
| value_type | alpha, | ||
| BLAS_Cpp::Transp | trans_rhs1, | ||
| const MatrixOp & | mwo_rhs2, | ||
| BLAS_Cpp::Transp | trans_rhs2, | ||
| value_type | beta | ||
| ) | const [protected, virtual] |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 378 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| bool AbstractLinAlgPack::MatrixPermAggr::Mp_StMtM | ( | MatrixOp * | mwo_lhs, |
| value_type | alpha, | ||
| const MatrixOp & | mwo_rhs1, | ||
| BLAS_Cpp::Transp | trans_rhs1, | ||
| BLAS_Cpp::Transp | trans_rhs2, | ||
| value_type | beta | ||
| ) | const [protected, virtual] |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 391 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
| bool AbstractLinAlgPack::MatrixPermAggr::syrk | ( | BLAS_Cpp::Transp | M_trans, |
| value_type | alpha, | ||
| value_type | beta, | ||
| MatrixSymOp * | sym_lhs | ||
| ) | const [protected, virtual] |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 404 of file AbstractLinAlgPack_MatrixPermAggr.cpp.
1.7.6.1