MOOCHO (Single Doxygen Collection)
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... | |
Private Member Functions | |
void | assert_initialized () const |
Private Attributes | |
MatrixOp * | M_full |
Range1D | rng_rows |
Range1D | rng_cols |
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 |
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.
|
private |
Definition at line 437 of file AbstractLinAlgPack_MatrixOpSubView.cpp.
|
inlineprivate |
Definition at line 278 of file AbstractLinAlgPack_MatrixOpSubView.hpp.
|
inlineprivate |
Definition at line 279 of file AbstractLinAlgPack_MatrixOpSubView.hpp.
|
inlineprivate |
Definition at line 280 of file AbstractLinAlgPack_MatrixOpSubView.hpp.