AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | List of all members
AbstractLinAlgPack::MatrixSymOpGetGMSSym Class Referenceabstract

Abstract interface that allows the extraction of a const DenseLinAlgPack::DMatrixSliceSym view of an abstract matrix. More...

#include <AbstractLinAlgPack_MatrixSymOpGetGMSSym.hpp>

Inheritance diagram for AbstractLinAlgPack::MatrixSymOpGetGMSSym:
Inheritance graph
[legend]

Public Member Functions

virtual const
DenseLinAlgPack::DMatrixSliceSym 
get_sym_gms_view () const =0
 Get a const view of the symmetric abstract matrix in the form DenseLinAlgPack::DMatrixSliceSym. More...
 
virtual void free_sym_gms_view (const DenseLinAlgPack::DMatrixSliceSym *sym_gms_view) const =0
 Free a view of a symmetric dense matrix initialized from get_sym_gms_view()>/tt>. More...
 
- Public Member Functions inherited from AbstractLinAlgPack::MatrixSymOp
virtual MatrixSymOpoperator= (const MatrixSymOp &M)
 Calls operator=(MatrixOp&) More...
 
virtual mat_mswo_mut_ptr_t clone_mswo ()
 Clone the non-const matrix object (if supported). More...
 
virtual mat_mswo_ptr_t clone_mswo () const
 Clone the const matrix object (if supported). More...
 
size_type cols () const
 Returns this->rows() More...
 
const VectorSpacespace_rows () const
 Vector space for vectors that are compatible with the rows of the matrix. More...
 
mat_mut_ptr_t clone ()
 Returns this->clone_mswo(). More...
 
mat_ptr_t clone () const
 Returns this->clone_mswo(). 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 MatrixOpoperator= (const MatrixOp &mwo_rhs)
 M_lhs = mwo_rhs : Virtual assignment operator. 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 VectorSpacespace_cols () const =0
 Vector space for vectors that are compatible with the columns of the matrix. More...
 
virtual size_type rows () const
 Return the number of rows in the matrix. More...
 
virtual size_type nz () const
 Return the number of nonzero elements in the matrix. More...
 

Detailed Description

Abstract interface that allows the extraction of a const DenseLinAlgPack::DMatrixSliceSym view of an abstract matrix.

This interface is ment to be used by MatrixSymOp 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 symmetric 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 MatrixDenseSymEncap.

Definition at line 67 of file AbstractLinAlgPack_MatrixSymOpGetGMSSym.hpp.

Member Function Documentation

virtual const DenseLinAlgPack::DMatrixSliceSym AbstractLinAlgPack::MatrixSymOpGetGMSSym::get_sym_gms_view ( ) const
pure virtual

Get a const view of the symmetric abstract matrix in the form DenseLinAlgPack::DMatrixSliceSym.

Returns
On ouput, return will be initialized to point to storage to the symmetric dense matrix elements. The output from this function sym_gms_view = this->get_sym_gms_view() must be passed to this->free_sym_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:

  • return.rows() == this->rows()
  • return.cols() == this->cols()

Warning! If a subclass overrides this method, it must also override free_sym_gms_view().

virtual void AbstractLinAlgPack::MatrixSymOpGetGMSSym::free_sym_gms_view ( const DenseLinAlgPack::DMatrixSliceSym sym_gms_view) const
pure virtual

Free a view of a symmetric dense matrix initialized from get_sym_gms_view()>/tt>.

Parameters
sym_gms_view[in/out] On input, sym_gms_view must have been initialized from this->get_sym_gms_view(). On output, sym_gms_view will become invalid and must not be used.

Preconditions:

  • sym_gms_view must have been initialized by this->get_sym_gms_view)

Postconditions:

  • sym_gms_view becomes invalid and must not be used any longer!

The documentation for this class was generated from the following file: