AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects Version of the Day
Classes
AbstractLinAlgPack::MatrixSymDiagStd Class Reference

Simple diagonal matrix class. More...

#include <AbstractLinAlgPack_MatrixSymDiagStd.hpp>

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

List of all members.

Classes

class  PostMod
 PostMod class to use with MemMngPack::AbstractFactorStd. More...

Constructors/initalizers

 MatrixSymDiagStd (const VectorSpace::vec_mut_ptr_t &diag=Teuchos::null, bool unique=true)
 Calls this->initialize().
void initialize (const VectorSpace::vec_mut_ptr_t &diag, bool unique=true)
 Initialize given the diagonal vector (or no vector at all).

Access

VectorMutablediag ()
 Give non-const access to the diagonal vector.
const VectorSpace::vec_mut_ptr_tdiag_ptr () const
 
bool unique () const
 

Overridden from MatrixBase

size_type rows () const
 Returns 0 if not initalized (this->diag() == NULL).
size_type nz () const
 

Overridden from MatrixOp

const VectorSpacespace_rows () const
 
const VectorSpacespace_cols () const
 
MatrixOpoperator= (const MatrixOp &mwo_rhs)
 
bool Mp_StM (MatrixOp *g_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs) const
 Add to a mutable matrix lhs.
void Vp_StMtV (VectorMutable *v_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2, value_type beta) const
 
void Vp_StMtV (VectorMutable *v_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2, value_type beta) const
 
bool syrk (BLAS_Cpp::Transp M_trans, value_type alpha, value_type beta, MatrixSymOp *sym_lhs) const
 Implements the symmetric rank-k update for all diagonal matrix lhs.
void V_InvMtV (VectorMutable *v_lhs, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2) const
 
void V_InvMtV (VectorMutable *v_lhs, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2) const
 

Overridden from MatrixSymInitDiag

void init_identity (const VectorSpace &space_diag, value_type alpha)
 
void init_diagonal (const Vector &diag)
 

Overridden from MatrixSymDiag

const Vectordiag () const
 

Detailed Description

Simple diagonal matrix class.

ToDo: Implement clone_mswons() and deal with this->diag_ptr().count() > 1 by cloning vector if told to. This allows lazy evaluation of the clone_mswons() method.

Definition at line 57 of file AbstractLinAlgPack_MatrixSymDiagStd.hpp.


Constructor & Destructor Documentation

AbstractLinAlgPack::MatrixSymDiagStd::MatrixSymDiagStd ( const VectorSpace::vec_mut_ptr_t diag = Teuchos::null,
bool  unique = true 
)

Calls this->initialize().

Definition at line 54 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.


Member Function Documentation

void AbstractLinAlgPack::MatrixSymDiagStd::initialize ( const VectorSpace::vec_mut_ptr_t diag,
bool  unique = true 
)

Initialize given the diagonal vector (or no vector at all).

Parameters:
diag[in] Vector to be used for the diagonal. If diag.get() == NULL then this will be uninitialized.
unique[in] Determines if the underlying diag vector is guaranteed to be unique and not shared.

Definition at line 66 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.

VectorMutable & AbstractLinAlgPack::MatrixSymDiagStd::diag ( )

Give non-const access to the diagonal vector.

Preconditions:

ToDo: Finish documentation!

Definition at line 75 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.

const VectorSpace::vec_mut_ptr_t & AbstractLinAlgPack::MatrixSymDiagStd::diag_ptr ( ) const

Definition at line 86 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.

bool AbstractLinAlgPack::MatrixSymDiagStd::unique ( ) const [inline]

Definition at line 210 of file AbstractLinAlgPack_MatrixSymDiagStd.hpp.

size_type AbstractLinAlgPack::MatrixSymDiagStd::rows ( ) const [virtual]

Returns 0 if not initalized (this->diag() == NULL).

Reimplemented from AbstractLinAlgPack::MatrixBase.

Definition at line 93 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.

size_type AbstractLinAlgPack::MatrixSymDiagStd::nz ( ) const [virtual]

Reimplemented from AbstractLinAlgPack::MatrixBase.

Definition at line 98 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.

const VectorSpace & AbstractLinAlgPack::MatrixSymDiagStd::space_rows ( ) const [virtual]

Reimplemented from AbstractLinAlgPack::MatrixSymOp.

Definition at line 109 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.

const VectorSpace & AbstractLinAlgPack::MatrixSymDiagStd::space_cols ( ) const [virtual]
MatrixOp & AbstractLinAlgPack::MatrixSymDiagStd::operator= ( const MatrixOp mwo_rhs) [virtual]

Reimplemented from AbstractLinAlgPack::MatrixOp.

Definition at line 114 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.

bool AbstractLinAlgPack::MatrixSymDiagStd::Mp_StM ( MatrixOp g_lhs,
value_type  alpha,
BLAS_Cpp::Transp  trans_rhs 
) const [virtual]

Add to a mutable matrix lhs.

Preconditions:

  • #dynamic_cast<MultiVectorMutable*>(m_lhs) != NULL#.

Reimplemented from AbstractLinAlgPack::MatrixOp.

Definition at line 132 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.

void AbstractLinAlgPack::MatrixSymDiagStd::Vp_StMtV ( VectorMutable v_lhs,
value_type  alpha,
BLAS_Cpp::Transp  trans_rhs1,
const Vector v_rhs2,
value_type  beta 
) const [virtual]
void AbstractLinAlgPack::MatrixSymDiagStd::Vp_StMtV ( VectorMutable v_lhs,
value_type  alpha,
BLAS_Cpp::Transp  trans_rhs1,
const SpVectorSlice sv_rhs2,
value_type  beta 
) const

Definition at line 160 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.

bool AbstractLinAlgPack::MatrixSymDiagStd::syrk ( BLAS_Cpp::Transp  M_trans,
value_type  alpha,
value_type  beta,
MatrixSymOp sym_lhs 
) const [virtual]

Implements the symmetric rank-k update for all diagonal matrix lhs.

Returns:
Returns true if dynamic_cast<MatrixSymDiagStd>(sym_lhs) != NULL. Otherwise, returns false.

Reimplemented from AbstractLinAlgPack::MatrixOp.

Definition at line 183 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.

void AbstractLinAlgPack::MatrixSymDiagStd::V_InvMtV ( VectorMutable v_lhs,
BLAS_Cpp::Transp  trans_rhs1,
const Vector v_rhs2 
) const [virtual]

Overridden from MatrixOpNonsing

Implements AbstractLinAlgPack::MatrixNonsing.

Definition at line 169 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.

void AbstractLinAlgPack::MatrixSymDiagStd::V_InvMtV ( VectorMutable v_lhs,
BLAS_Cpp::Transp  trans_rhs1,
const SpVectorSlice sv_rhs2 
) const

Definition at line 176 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.

void AbstractLinAlgPack::MatrixSymDiagStd::init_identity ( const VectorSpace space_diag,
value_type  alpha 
) [virtual]
void AbstractLinAlgPack::MatrixSymDiagStd::init_diagonal ( const Vector diag) [virtual]
const Vector & AbstractLinAlgPack::MatrixSymDiagStd::diag ( ) const [virtual]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends