MOOCHO (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
AbstractLinAlgPack::MatrixDenseSymMutableEncap Class Reference

Helper class type that simplifies the usage of the MatrixSymOpGetGMSSymMutable interface for clients. More...

#include <AbstractLinAlgPack_MatrixSymOpGetGMSSymMutable.hpp>

Public Member Functions

 MatrixDenseSymMutableEncap (MatrixSymOpGetGMSSymMutable *mat_get)
 Construct a DenseLinAlgPack::DMatrixSliceSym view from a MatrixSymOpGetGMSSymMutable object. More...
 
 MatrixDenseSymMutableEncap (MatrixSymOp *mat)
 Construct a DenseLinAlgPack::DMatrixSliceSym view from a MatrixSymOp object. More...
 
 ~MatrixDenseSymMutableEncap ()
 Frees the DenseLinAlgPack::DMatrixSliceSym view and commits the changes. More...
 
DenseLinAlgPack::DMatrixSliceSym operator() ()
 Returns a non-const view of the DenseLinAlgPack::DMatrixSliceSym view. More...
 
const
DenseLinAlgPack::DMatrixSliceSym 
operator() () const
 Returns a const view of the DenseLinAlgPack::DMatrixSliceSym view. More...
 

Private Member Functions

 MatrixDenseSymMutableEncap ()
 
 MatrixDenseSymMutableEncap (const MatrixDenseSymMutableEncap &)
 
MatrixDenseSymMutableEncapoperator= (const MatrixDenseSymMutableEncap &)
 

Private Attributes

MatrixSymOpGetGMSSymMutablemat_get_
 
DenseLinAlgPack::DMatrixSliceSym sym_gms_view_
 

Detailed Description

Helper class type that simplifies the usage of the MatrixSymOpGetGMSSymMutable interface for clients.

This takes care of worrying about if the MatrixSymOpGetGMSSymMutable interface is supported or not and remembering to free the DenseLinAlgPack::DMatrixSliceSym view properly.

This class is only to be used on the stack as an automatic variable. For example, to extract a DenseLinAlgPack::DMatrixSliceSym view of an abstract vector and use it to set the matrix to a scalar one could write a function like:

void assign( const value_type alpha, MatrixSymOpGetGMSSymMutable* mat_inout ) {
MatrixDenseSymMutableEncap gms_inout(*mat_inout);
gms_inout() = alpha;
}

In the above code, if the underlying MatrixSymOpGetGMSSymMutable object does not have to perform any dynamic memory allocations and copy in the method MatrixSymOpGetGMSSymMutable::get_sym_gms_view() then the above code will only have a constant time overhead.

Definition at line 123 of file AbstractLinAlgPack_MatrixSymOpGetGMSSymMutable.hpp.

Constructor & Destructor Documentation

AbstractLinAlgPack::MatrixDenseSymMutableEncap::MatrixDenseSymMutableEncap ( MatrixSymOpGetGMSSymMutable mat_get)
inline
AbstractLinAlgPack::MatrixDenseSymMutableEncap::MatrixDenseSymMutableEncap ( MatrixSymOp mat)
inline

Construct a DenseLinAlgPack::DMatrixSliceSym view from a MatrixSymOp object.

If dynamic_cast<MatrixSymOpGetGMSSymMutable*>(mat) == NULL then a ??? exception is thrown.

Definition at line 164 of file AbstractLinAlgPack_MatrixSymOpGetGMSSymMutable.hpp.

AbstractLinAlgPack::MatrixDenseSymMutableEncap::~MatrixDenseSymMutableEncap ( )
inline

Frees the DenseLinAlgPack::DMatrixSliceSym view and commits the changes.

Definition at line 170 of file AbstractLinAlgPack_MatrixSymOpGetGMSSymMutable.hpp.

AbstractLinAlgPack::MatrixDenseSymMutableEncap::MatrixDenseSymMutableEncap ( )
private
AbstractLinAlgPack::MatrixDenseSymMutableEncap::MatrixDenseSymMutableEncap ( const MatrixDenseSymMutableEncap )
private

Member Function Documentation

DenseLinAlgPack::DMatrixSliceSym AbstractLinAlgPack::MatrixDenseSymMutableEncap::operator() ( )
inline

Returns a non-const view of the DenseLinAlgPack::DMatrixSliceSym view.

Definition at line 176 of file AbstractLinAlgPack_MatrixSymOpGetGMSSymMutable.hpp.

const DenseLinAlgPack::DMatrixSliceSym AbstractLinAlgPack::MatrixDenseSymMutableEncap::operator() ( ) const
inline

Returns a const view of the DenseLinAlgPack::DMatrixSliceSym view.

Definition at line 182 of file AbstractLinAlgPack_MatrixSymOpGetGMSSymMutable.hpp.

MatrixDenseSymMutableEncap& AbstractLinAlgPack::MatrixDenseSymMutableEncap::operator= ( const MatrixDenseSymMutableEncap )
private

Member Data Documentation

MatrixSymOpGetGMSSymMutable* AbstractLinAlgPack::MatrixDenseSymMutableEncap::mat_get_
private
DenseLinAlgPack::DMatrixSliceSym AbstractLinAlgPack::MatrixDenseSymMutableEncap::sym_gms_view_
private

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