MOOCHO (Single Doxygen Collection)
Version of the Day
|
Abstract interface that allows the extraction of a non-const DMatrixSlice
view of an abstract matrix.
More...
#include <AbstractLinAlgPack_MatrixOpGetGMSMutable.hpp>
Public Member Functions | |
virtual DMatrixSlice | get_gms_view ()=0 |
Get a representation of the abstract matrixr in the form DenseLinAlgPack::DMatrixSlice . More... | |
virtual void | commit_gms_view (DMatrixSlice *gms_view)=0 |
Commit changes to a view of a dense matrix initialized from this->get_gms_view() . More... | |
Public Member Functions inherited from AbstractLinAlgPack::MatrixOpGetGMS | |
virtual const DMatrixSlice | get_gms_view () const =0 |
Get a const view of the abstract matrix in the form DenseLinAlgPack::DMatrixSlice . More... | |
virtual void | free_gms_view (const DMatrixSlice *gms_view) const =0 |
Free a view of a dense matrix initialized from get_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... | |
Abstract interface that allows the extraction of a non-const DMatrixSlice
view of an 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 and can modify the elements in their data structures.
Subclasses that store a Fortran compatible dense 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 MatrixDenseMutableEncap
.
Definition at line 65 of file AbstractLinAlgPack_MatrixOpGetGMSMutable.hpp.
|
pure virtual |
Get a representation of the abstract matrixr in the form DenseLinAlgPack::DMatrixSlice
.
return
will be initialized to point to storage to the dense matrix elements. The output from this function gms_view = this->get_gms_view()
must be passed to this->commit_gms_view(gms)
to commit and free any memory that may have been allocated and to ensure the that underlying abstract matrix object has been updated. After this->commit_gms_view(gms_view)
is called, gms_view
must not be used any longer!Postconditions:
return.rows() == this->rows()
return.cols() == this->cols()
Warning! If a subclass overrides this method, it must also override commit_gms_view()
.
|
pure virtual |
Commit changes to a view of a dense matrix initialized from this->get_gms_view()
.
gms_view | [in/out] On input, gms_view must have been initialized from this->get_gms_view() . On output, gms_view will become invalid and must not be used. |
Preconditions:
gms_view
must have been initialized by this->get_gms_view
) Postconditions:
this
is guaranteed to be updated. gms_view
becomes invalid and must not be used any longer!