CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
gbl::VSymMatrix Class Reference

Simple symmetric Matrix based on std::vector<double> More...

#include <VMatrix.h>

Public Member Functions

unsigned int getNumRows () const
 Get number of rows (= number of colums). More...
 
unsigned int invert ()
 Matrix inversion. More...
 
double & operator() (unsigned int i, unsigned int j)
 access element (i,j) assuming i>=j More...
 
double operator() (unsigned int i, unsigned int j) const
 access element (i,j) assuming i>=j More...
 
VVector operator* (const VVector &aVector) const
 Multiplication SymMatrix*Vector. More...
 
VMatrix operator* (const VMatrix &aMatrix) const
 Multiplication SymMatrix*Matrix. More...
 
VSymMatrix operator- (const VMatrix &aMatrix) const
 Subtraction SymMatrix-(sym)Matrix. More...
 
void print () const
 Print matrix. More...
 
void resize (const unsigned int nRows)
 Resize symmetric matrix. More...
 
 VSymMatrix (const unsigned int nRows=0)
 
virtual ~VSymMatrix ()
 

Private Attributes

unsigned int numRows
 Number of rows. More...
 
std::vector< double > theVec
 Data (symmetric storage) More...
 

Detailed Description

Simple symmetric Matrix based on std::vector<double>

Definition at line 64 of file VMatrix.h.

Constructor & Destructor Documentation

gbl::VSymMatrix::VSymMatrix ( const unsigned int  nRows = 0)

Definition at line 142 of file VMatrix.cc.

gbl::VSymMatrix::~VSymMatrix ( )
virtual

Definition at line 146 of file VMatrix.cc.

Member Function Documentation

unsigned int gbl::VSymMatrix::getNumRows ( ) const

Get number of rows (= number of colums).

Returns
Number of rows.

Definition at line 162 of file VMatrix.cc.

unsigned int gbl::VSymMatrix::invert ( )

Matrix inversion.

Invert symmetric N-by-N matrix V in symmetric storage mode V(1) = V11, V(2) = V12, V(3) = V22, V(4) = V13, . . . replaced by inverse matrix

Method of solution is by elimination selecting the pivot on the diagonal each stage. The rank of the matrix is returned in NRANK. For NRANK ne N, all remaining rows and cols of the resulting matrix V are set to zero.

Exceptions
1: matrix is singular.
Returns
Rank of matrix.

Definition at line 326 of file VMatrix.cc.

double & gbl::VSymMatrix::operator() ( unsigned int  i,
unsigned int  j 
)
inline

access element (i,j) assuming i>=j

Definition at line 103 of file VMatrix.h.

References theVec.

103  {
104  return theVec[(iRow * iRow + iRow) / 2 + iCol]; // assuming iCol <= iRow
105 }
std::vector< double > theVec
Data (symmetric storage)
Definition: VMatrix.h:79
double gbl::VSymMatrix::operator() ( unsigned int  i,
unsigned int  j 
) const
inline

access element (i,j) assuming i>=j

Definition at line 108 of file VMatrix.h.

References theVec.

109  {
110  return theVec[(iRow * iRow + iRow) / 2 + iCol]; // assuming iCol <= iRow
111 }
std::vector< double > theVec
Data (symmetric storage)
Definition: VMatrix.h:79
VVector gbl::VSymMatrix::operator* ( const VVector aVector) const

Multiplication SymMatrix*Vector.

Definition at line 194 of file VMatrix.cc.

VMatrix gbl::VSymMatrix::operator* ( const VMatrix aMatrix) const

Multiplication SymMatrix*Matrix.

Definition at line 207 of file VMatrix.cc.

VSymMatrix gbl::VSymMatrix::operator- ( const VMatrix aMatrix) const

Subtraction SymMatrix-(sym)Matrix.

Definition at line 183 of file VMatrix.cc.

void gbl::VSymMatrix::print ( void  ) const

Print matrix.

Definition at line 167 of file VMatrix.cc.

void gbl::VSymMatrix::resize ( const unsigned int  nRows)

Resize symmetric matrix.

Parameters
[in]nRowsNumber of rows.

Definition at line 153 of file VMatrix.cc.

Referenced by Vispa.Gui.TextDialog.TextDialog::__init__().

Member Data Documentation

unsigned int gbl::VSymMatrix::numRows
private

Number of rows.

Definition at line 78 of file VMatrix.h.

std::vector<double> gbl::VSymMatrix::theVec
private

Data (symmetric storage)

Definition at line 79 of file VMatrix.h.

Referenced by operator()().