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...

Private Member Functions

void copy_unique ()

Private Attributes

VectorSpace::vec_mut_ptr_t diag_
bool unique_

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 44 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 34 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 46 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.

VectorMutable & AbstractLinAlgPack::MatrixSymDiagStd::diag (  ) 

Give non-const access to the diagonal vector.

Preconditions:

ToDo: Finish documentation!

Definition at line 55 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.

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

Definition at line 66 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.

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

Definition at line 197 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 73 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.

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

Reimplemented from AbstractLinAlgPack::MatrixBase.

Definition at line 78 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.

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

Reimplemented from AbstractLinAlgPack::MatrixSymOp.

Definition at line 89 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 94 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 112 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 [virtual]

Reimplemented from AbstractLinAlgPack::MatrixOp.

Definition at line 140 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 163 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 149 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 156 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]
void AbstractLinAlgPack::MatrixSymDiagStd::copy_unique (  )  [private]

Definition at line 204 of file AbstractLinAlgPack_MatrixSymDiagStd.cpp.


Member Data Documentation

Definition at line 186 of file AbstractLinAlgPack_MatrixSymDiagStd.hpp.

Definition at line 187 of file AbstractLinAlgPack_MatrixSymDiagStd.hpp.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Wed Apr 13 10:17:29 2011 for MOOCHO (Single Doxygen Collection) by  doxygen 1.6.3