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:

[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

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

Private Attributes

size_type num_updates_at_once_

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

void AbstractLinAlgPack::MatrixSymDiagSparse::num_updates_at_once const size_type num_updates_at_once  )  [inline]
 

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

Definition at line 49 of file AbstractLinAlgPack_MatrixSymDiagSparse.hpp.

const size_type& AbstractLinAlgPack::MatrixSymDiagSparse::num_updates_at_once  )  const [inline]
 

Definition at line 49 of file AbstractLinAlgPack_MatrixSymDiagSparse.hpp.

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

Implements AbstractLinAlgPack::MatrixConvertToSparse.

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

Implements AbstractLinAlgPack::MatrixConvertToSparse.

Definition at line 245 of file AbstractLinAlgPack_MatrixSymDiagSparse.cpp.


Member Data Documentation

size_type AbstractLinAlgPack::MatrixSymDiagSparse::num_updates_at_once_ [private]
 

Definition at line 49 of file AbstractLinAlgPack_MatrixSymDiagSparse.hpp.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:36:11 2008 for MOOCHO (Single Doxygen Collection) by doxygen 1.3.9.1