AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects
Version of the Day
|
Mix-in interface that allows the extraction of a const DenseLinAlgPack::DMatrixSliceTri
view of an non-singular abstract matrix.
More...
#include <AbstractLinAlgPack_MatrixOpGetGMSTri.hpp>
Public Member Functions | |
virtual const DenseLinAlgPack::DMatrixSliceTri | get_tri_gms_view () const =0 |
Get a const view of the symmetric abstract matrix in the form DenseLinAlgPack::DMatrixSliceTri . More... | |
virtual void | free_tri_gms_view (const DenseLinAlgPack::DMatrixSliceTri *tri_gms_view) const =0 |
Free a view of a symmetric dense matrix initialized from get_tri_gms_view()>/tt>. More... | |
Public Member Functions inherited from AbstractLinAlgPack::MatrixOp | |
virtual void | zero_out () |
M_lhs = 0 : Zero out the matrix. More... | |
virtual void | Mt_S (value_type alpha) |
M_lhs *= alpha : Multiply a matrix by a scalar. More... | |
virtual MatrixOp & | operator= (const MatrixOp &mwo_rhs) |
M_lhs = mwo_rhs : Virtual assignment operator. More... | |
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... | |
virtual std::ostream & | output (std::ostream &out) const |
Virtual output function. More... | |
const MatNorm | calc_norm (EMatNormType requested_norm_type=MAT_NORM_1, bool allow_replacement=false) const |
Compute a norm of this matrix. More... | |
virtual mat_ptr_t | sub_view (const Range1D &row_rng, const Range1D &col_rng) const |
Create a transient constant sub-matrix view of this matrix (if supported). 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... | |
virtual const VectorSpace & | space_cols () const =0 |
Vector space for vectors that are compatible with the columns of the matrix. More... | |
virtual const VectorSpace & | space_rows () const =0 |
Vector space for vectors that are compatible with the rows of the matrix. More... | |
virtual size_type | rows () const |
Return the number of rows in the matrix. More... | |
virtual size_type | cols () const |
Return the number of columns in the matrix. More... | |
virtual size_type | nz () const |
Return the number of nonzero elements in the matrix. More... | |
Mix-in interface that allows the extraction of a const DenseLinAlgPack::DMatrixSliceTri
view of an non-singular abstract matrix.
This interface is ment to be used by MatrixOp
objects that store all of their matrix elements in the local address space or can easily access all of the elements from this process.
Subclasses that store a BLAS compatible triangular dense matrix can implement these methods without any dynamic memory allocations. There is no default implementation for these methods so subclasses that derive from this interface must implement these methods.
These methods should never be called directly. Instead, use the helper class type MatrixDenseTriEncap
.
Definition at line 67 of file AbstractLinAlgPack_MatrixOpGetGMSTri.hpp.
|
pure virtual |
Get a const view of the symmetric abstract matrix in the form DenseLinAlgPack::DMatrixSliceTri
.
return
will be initialized to point to storage to the symmetric dense matrix elements. The output from this function tri_gms_view = this->get_tri_gms_view()
must be passed to this->free_tri_gms_view(gms)
to free any memory that may have been allocated. After this->free_gms_view(gms_view)
is called, gms_view
must not be used any longer!Postconditions:
Warning! If a subclass overrides this method, it must also override free_tri_gms_view()
.
|
pure virtual |
Free a view of a symmetric dense matrix initialized from get_tri_gms_view()>/tt>.
tri_gms_view | [in/out] On input, tri_gms_view must have been initialized from this->get_tri_gms_view() . On output, tri_gms_view will become invalid and must not be used. |
Preconditions:
tri_gms_view
must have been initialized by this->get_tri_gms_view
) Postconditions:
tri_gms_view
becomes invalid and must not be used any longer!