AbstractLinAlgPack::MatrixSymOpGetGMSSymMutable Class Reference

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

#include <AbstractLinAlgPack_MatrixSymOpGetGMSSymMutable.hpp>

Inheritance diagram for AbstractLinAlgPack::MatrixSymOpGetGMSSymMutable:

Inheritance graph
[legend]
List of all members.

Public Member Functions

virtual DenseLinAlgPack::DMatrixSliceSym get_sym_gms_view ()=0
 Get a non-const view of the symmetric abstract matrix in the form DenseLinAlgPack::DenseLinAlgPack::DMatrixSliceSym.
virtual void commit_sym_gms_view (DenseLinAlgPack::DMatrixSliceSym *sym_gms_view)=0
 Free a view of a dense matrix initialized from get_sym_gms_view()>/tt>.

Detailed Description

Abstract interface that allows the extraction of a non-const DenseLinAlgPack::DMatrixSliceSym view of a symmetry 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 and can modify the elements in their data structures.

Subclasses that store a BLAS compatible dense symmetric 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 MatrixDenseSymMutableEncap.

Definition at line 52 of file AbstractLinAlgPack_MatrixSymOpGetGMSSymMutable.hpp.


Member Function Documentation

virtual DenseLinAlgPack::DMatrixSliceSym AbstractLinAlgPack::MatrixSymOpGetGMSSymMutable::get_sym_gms_view (  )  [pure virtual]

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

Returns:
On ouput, return will be initialized to point to storage to the dense matrix elements. The output from this function sym_gms_view = this->get_sym_gms_view() must be passed to this->commit_sym_gms_view(gms) to free any memory that may have been allocated and to ensure the that underlying abstract matrix object has been updated. After this->commit_sym_gms_view(sym_gms_view) is called, sym_gms_view must not be used any longer!
Postconditions:

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

virtual void AbstractLinAlgPack::MatrixSymOpGetGMSSymMutable::commit_sym_gms_view ( DenseLinAlgPack::DMatrixSliceSym sym_gms_view  )  [pure virtual]

Free a view of a 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:

Postconditions:


The documentation for this class was generated from the following file:
Generated on Tue Jul 13 09:29:07 2010 for AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects by  doxygen 1.4.7