AbstractLinAlgPack::MatrixSymDiagSparse Class Reference

Abstract base class for all serial symmetric diagonal matrices with significant zeros along the diagonal. More...

#include <AbstractLinAlgPack_MatrixSymDiagSparse.hpp>

Inheritance diagram for AbstractLinAlgPack::MatrixSymDiagSparse:

Inheritance graph
[legend]
List of all members.

To be overridden by subclass

virtual const SpVectorSlice diag () const =0
 Give access to the sparse diagonal.

Overridden from MatrixBase

size_type rows () const
 

Overridden from MatrixOp

std::ostream & output (std::ostream &out) const
 

Overridden from MatrixOpSerial

void Vp_StMtV (DVectorSlice *vs_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const DVectorSlice &vs_rhs2, value_type beta) const
 

Overridden from MatrixSymOpSerial

void Mp_StMtMtM (DMatrixSliceSym *sym_lhs, value_type alpha, EMatRhsPlaceHolder dummy_place_holder, const MatrixOpSerial &mwo_rhs, BLAS_Cpp::Transp mwo_rhs_trans, value_type beta) const
 Computes the dense symmetric matrix B += a*op(A')*M*op(A).

Overridden from MatrixConvertToSparse

index_type num_nonzeros (EExtractRegion extract_region, EElementUniqueness element_uniqueness) const
 
void coor_extract_nonzeros (EExtractRegion extract_region, EElementUniqueness element_uniqueness, const index_type len_Aval, value_type Aval[], const index_type len_Aij, index_type Arow[], index_type Acol[], const index_type row_offset, const index_type col_offset) const
 

Public Member Functions

 STANDARD_MEMBER_COMPOSITION_MEMBERS (size_type, num_updates_at_once)
 <<std member="" comp>="">> members for how many updates to compute at once in the operation M_MtMtM(....).
 MatrixSymDiagSparse ()
 The default value of num_updates_at_once == 0 is set to allow this class to determine the appropriate size internally.

Detailed Description

Abstract base class for all serial symmetric diagonal matrices with significant zeros along the diagonal.

Definition at line 40 of file AbstractLinAlgPack_MatrixSymDiagSparse.hpp.


Constructor & Destructor Documentation

AbstractLinAlgPack::MatrixSymDiagSparse::MatrixSymDiagSparse (  ) 

The default value of num_updates_at_once == 0 is set to allow this class to determine the appropriate size internally.

Definition at line 55 of file AbstractLinAlgPack_MatrixSymDiagSparse.cpp.


Member Function Documentation

AbstractLinAlgPack::MatrixSymDiagSparse::STANDARD_MEMBER_COMPOSITION_MEMBERS ( size_type  ,
num_updates_at_once   
)

<<std member="" comp>="">> members for how many updates to compute at once in the operation M_MtMtM(....).

virtual const SpVectorSlice AbstractLinAlgPack::MatrixSymDiagSparse::diag (  )  const [pure virtual]

Give access to the sparse diagonal.

Implemented in AbstractLinAlgPack::MatrixSymDiagSparseStd.

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

Reimplemented from AbstractLinAlgPack::MatrixBase.

Definition at line 61 of file AbstractLinAlgPack_MatrixSymDiagSparse.cpp.

std::ostream & AbstractLinAlgPack::MatrixSymDiagSparse::output ( std::ostream &  out  )  const [virtual]

Reimplemented from AbstractLinAlgPack::MatrixOpSerial.

Definition at line 68 of file AbstractLinAlgPack_MatrixSymDiagSparse.cpp.

void AbstractLinAlgPack::MatrixSymDiagSparse::Vp_StMtV ( DVectorSlice vs_lhs,
value_type  alpha,
BLAS_Cpp::Transp  trans_rhs1,
const DVectorSlice vs_rhs2,
value_type  beta 
) const [virtual]

Implements AbstractLinAlgPack::MatrixOpSerial.

Definition at line 77 of file AbstractLinAlgPack_MatrixSymDiagSparse.cpp.

void AbstractLinAlgPack::MatrixSymDiagSparse::Mp_StMtMtM ( DMatrixSliceSym sym_lhs,
value_type  alpha,
EMatRhsPlaceHolder  dummy_place_holder,
const MatrixOpSerial mwo_rhs,
BLAS_Cpp::Transp  mwo_rhs_trans,
value_type  beta 
) const [virtual]

Computes the dense symmetric matrix B += a*op(A')*M*op(A).

This matrix is computed using a set of rank-1 updates.

Runtime ~ O( (m^2)*nz )

Storage ~ O( num_updates_at_once * m )

Where:

Note that a necessary condition for B to be full rank is for nz >= m.

Also note that this default implementation is only for nonnegative diagonal entries.

Reimplemented from AbstractLinAlgPack::MatrixSymOpSerial.

Definition at line 103 of file AbstractLinAlgPack_MatrixSymDiagSparse.cpp.

index_type AbstractLinAlgPack::MatrixSymDiagSparse::num_nonzeros ( EExtractRegion  extract_region,
EElementUniqueness  element_uniqueness 
) const

Definition at line 237 of file AbstractLinAlgPack_MatrixSymDiagSparse.cpp.

void AbstractLinAlgPack::MatrixSymDiagSparse::coor_extract_nonzeros ( EExtractRegion  extract_region,
EElementUniqueness  element_uniqueness,
const index_type  len_Aval,
value_type  Aval[],
const index_type  len_Aij,
index_type  Arow[],
index_type  Acol[],
const index_type  row_offset,
const index_type  col_offset 
) const

Definition at line 245 of file AbstractLinAlgPack_MatrixSymDiagSparse.cpp.


The documentation for this class was generated from the following files:
Generated on Wed May 12 21:57:07 2010 for MOOCHO (Single Doxygen Collection) by  doxygen 1.4.7