|
AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects
Version of the Day
|
Standard subclass for representing a sub, possibly transposed, view of a matrix. More...
#include <AbstractLinAlgPack_MatrixOpSubView.hpp>

Public Types | |
| typedef Teuchos::RCP< MatrixOp > | mat_ptr_t |
Public Types inherited from AbstractLinAlgPack::MatrixOp | |
| enum | EMatNormType { MAT_NORM_INF, MAT_NORM_2, MAT_NORM_1, MAT_NORM_FORB } |
| Type of matrix norm. More... | |
Constructors/initalizers | |
| MatrixOpSubView (const mat_ptr_t &M_full=Teuchos::null, const Range1D &rng_rows=Range1D(), const Range1D &rng_cols=Range1D(), BLAS_Cpp::Transp M_trans=BLAS_Cpp::no_trans) | |
Calls this->initialize(...) More... | |
| void | initialize (const mat_ptr_t &M_full, const Range1D &rng_rows=Range1D(), const Range1D &rng_cols=Range1D(), BLAS_Cpp::Transp M_trans=BLAS_Cpp::no_trans) |
| Initialize the view of a matrix. More... | |
Representation access | |
| const mat_ptr_t & | M_full_ptr () |
| MatrixOp & | M_full () |
| const MatrixOp & | M_full () const |
| Range1D | rng_rows () const |
| Range1D | rng_cols () const |
| BLAS_Cpp::Transp | M_trans () |
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 |
| void | zero_out () |
| void | Mt_S (value_type alpha) |
| 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 |
| bool | Mp_StM (value_type alpha, const MatrixOp &M_rhs, BLAS_Cpp::Transp trans_rhs) |
| bool | Mp_StMtP (value_type alpha, const MatrixOp &M_rhs, BLAS_Cpp::Transp M_trans, const GenPermMatrixSlice &P_rhs, BLAS_Cpp::Transp P_rhs_trans) |
| bool | Mp_StPtM (value_type alpha, const GenPermMatrixSlice &P_rhs, BLAS_Cpp::Transp P_rhs_trans, const MatrixOp &M_rhs, BLAS_Cpp::Transp M_trans) |
| bool | Mp_StPtMtP (value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, const MatrixOp &M_rhs, BLAS_Cpp::Transp M_trans, const GenPermMatrixSlice &P_rhs2, BLAS_Cpp::Transp P_rhs2_trans) |
| 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 | Mp_StMtM (value_type alpha, const MatrixOp &mvw_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOp &mwo_rhs2, BLAS_Cpp::Transp trans_rhs2, value_type beta) |
| bool | syrk (BLAS_Cpp::Transp M_trans, value_type alpha, value_type beta, MatrixSymOp *sym_lhs) const |
Additional Inherited Members | |
Public Member Functions inherited from AbstractLinAlgPack::MatrixOp | |
| virtual mat_mut_ptr_t | clone () |
| Clone the non-const matrix object (if supported). More... | |
| virtual mat_ptr_t | clone () const |
| Clone the const matrix object (if supported). More... | |
| const MatNorm | calc_norm (EMatNormType requested_norm_type=MAT_NORM_1, bool allow_replacement=false) const |
| Compute a norm of this matrix. More... | |
| mat_ptr_t | sub_view (const index_type &rl, const index_type &ru, const index_type &cl, const index_type &cu) const |
Inlined implementation calls this->sub_view(Range1D(rl,ru),Range1D(cl,cu)). More... | |
| virtual mat_ptr_t | perm_view (const Permutation *P_row, const index_type row_part[], int num_row_part, const Permutation *P_col, const index_type col_part[], int num_col_part) const |
Create a permuted view: M_perm = P_row' * M * P_col. More... | |
| virtual mat_ptr_t | perm_view_update (const Permutation *P_row, const index_type row_part[], int num_row_part, const Permutation *P_col, const index_type col_part[], int num_col_part, const mat_ptr_t &perm_view) const |
Reinitialize a permuted view: M_perm = P_row' * M * P_col. More... | |
Public Member Functions inherited from AbstractLinAlgPack::MatrixBase | |
| virtual | ~MatrixBase () |
| Virtual destructor. More... | |
Protected Member Functions inherited from AbstractLinAlgPack::MatrixOp | |
| virtual bool | syrk (const MatrixOp &mwo_rhs, BLAS_Cpp::Transp M_trans, value_type alpha, value_type beta) |
| Perform a rank-k update of a symmetric matrix of the form: More... | |
Standard subclass for representing a sub, possibly transposed, view of a matrix.
The matrix M_view represented by this is:
M_view = op(M_full(rng_rows,rng_cols))
ToDo: Finish Documentation!
Definition at line 63 of file AbstractLinAlgPack_MatrixOpSubView.hpp.
Definition at line 70 of file AbstractLinAlgPack_MatrixOpSubView.hpp.
| AbstractLinAlgPack::MatrixOpSubView::MatrixOpSubView | ( | const mat_ptr_t & | M_full = Teuchos::null, |
| const Range1D & | rng_rows = Range1D(), |
||
| const Range1D & | rng_cols = Range1D(), |
||
| BLAS_Cpp::Transp | M_trans = BLAS_Cpp::no_trans |
||
| ) |
Calls this->initialize(...)
Definition at line 60 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
| void AbstractLinAlgPack::MatrixOpSubView::initialize | ( | const mat_ptr_t & | M_full, |
| const Range1D & | rng_rows = Range1D(), |
||
| const Range1D & | rng_cols = Range1D(), |
||
| BLAS_Cpp::Transp | M_trans = BLAS_Cpp::no_trans |
||
| ) |
Initialize the view of a matrix.
| M_full | [in] Smart pointer for the matrix to provide a view of. It is allowed for M_full.get() == NULL in which case this will become uninitialized and none of the rest of the arguments matter and any value will do (i.e. the default values). |
| rng_rows | [in] Range in the rows of *M_full that this will represent. Only significant if M_full.get() != NULL. |
| rng_cols | [in] Range in the columns of *M_full that this will represent. Only significant if M_full.get() != NULL. |
| M_trans | [in] If M_trans == no_trans then this will represent M_full(rng_rows,rng_cols). If If M_trans == trans then this will represent the transpose M_full(rng_rows,rng_cols)'. |
Preconditions:
M_full.get()!=NULL && !rng_rows.full_range()] rng_rows.ubound() <= M_full->rows() (throw std::invalid_argument) M_full.get()!=NULL && !rng_cols.full_range()] rng_cols.ubound() <= M_full->cols() (throw std::invalid_argument) Postconditions:
this->M_full_ptr().get() == M_full.get() M_full.get()!=NULL] &this->M_full() == M_full.get() M_full.get()!=NULL && (rng_rows.full_range() || (rng_rows.lbound() == 1 && rng_rows.ubound() == M_full->rows()))] this->rng_rows().full_range() == true M_full.get()!=NULL && (rng_cols.full_range() || (rng_cols.lbound() == 1 && rng_cols.ubound() == M_full->cols()))] this->rng_cols().full_range() == true M_full.get()!=NULL] this->M_trans == M_trans M_full.get()==NULL] this->rng_rows() == Range1D::Invalid M_full.get()==NULL] this->rng_cols() == Range1D::Invalid Definition at line 70 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
inline |
Definition at line 300 of file AbstractLinAlgPack_MatrixOpSubView.hpp.
| MatrixOp& AbstractLinAlgPack::MatrixOpSubView::M_full | ( | ) |
| const MatrixOp& AbstractLinAlgPack::MatrixOpSubView::M_full | ( | ) | const |
| Range1D AbstractLinAlgPack::MatrixOpSubView::rng_rows | ( | ) | const |
| Range1D AbstractLinAlgPack::MatrixOpSubView::rng_cols | ( | ) | const |
|
inline |
Definition at line 330 of file AbstractLinAlgPack_MatrixOpSubView.hpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixBase.
Definition at line 119 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixBase.
Definition at line 126 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixBase.
Definition at line 133 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Implements AbstractLinAlgPack::MatrixBase.
Definition at line 144 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Implements AbstractLinAlgPack::MatrixBase.
Definition at line 150 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 157 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 164 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 176 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 188 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 195 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 205 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 213 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 223 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 233 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 247 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 254 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 264 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 275 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Implements AbstractLinAlgPack::MatrixOp.
Definition at line 289 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 338 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 346 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 357 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 368 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 376 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 384 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 397 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 407 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 416 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
virtual |
Reimplemented from AbstractLinAlgPack::MatrixOp.
Definition at line 427 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
1.8.6