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.

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.

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
 

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]
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 [virtual]
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 [virtual]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends
Generated on Wed Apr 13 10:09:24 2011 for AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects by  doxygen 1.6.3