OpenWalnut  1.4.0
Public Types | Public Member Functions | Private Attributes | Friends
WMatrixSym< T > Class Template Reference

Symmetric square matrix, storing only the elements of the triangular matrix without the main diagonal. More...

#include <WMatrixSym.h>

List of all members.

Public Types

typedef T value_type
 Type of stored elements.
typedef boost::shared_ptr
< WMatrixSym< T > > 
SPtr
 Shorthand for shared pointers.

Public Member Functions

 WMatrixSym (size_t n)
 Generates new symmetric matrix.
 WMatrixSym ()
 Default constructor leaving all empty.
T & operator() (size_t i, size_t j) throw ( WOutOfBounds )
 Element acces operator as if the elements where stored as a normal matrix.
const T & operator() (size_t i, size_t j) const throw ( WOutOfBounds )
 Const version of the element access.
size_t numElements () const
 Returns the number of elements stored in this matrix.
size_t size () const
 Returns the number of rows and cols of the matrix.
const std::vector< T > & getData () const
 Returns the elements stored inside of this container.
void setData (const std::vector< T > &data) throw ( WOutOfBounds )
 Resets the internal data to the given vector of elements.
std::string toString (void) const
 Renders the matrix to a full nxn matrix, where the main diagonal is set to 0.0 and the m(i,j) == m(j,i).

Private Attributes

std::vector< T > m_data
 Internal data structure to store the elements.
size_t m_n
 Number of rows and cols.

Friends

class WMatrixSymTest

Detailed Description

template<typename T>
class WMatrixSym< T >

Symmetric square matrix, storing only the elements of the triangular matrix without the main diagonal.

So in case of a NxN matrix there are only (N^2-N)/2 elements stored.

Notes:
There exists also a WWriter and WReader for storing/reading the matrix in VTK file format.

Definition at line 46 of file WMatrixSym.h.


Member Typedef Documentation

template<typename T>
typedef boost::shared_ptr< WMatrixSym < T > > WMatrixSym< T >::SPtr

Shorthand for shared pointers.

Definition at line 58 of file WMatrixSym.h.

template<typename T>
typedef T WMatrixSym< T >::value_type

Type of stored elements.

Definition at line 53 of file WMatrixSym.h.


Constructor & Destructor Documentation

template<typename T >
WMatrixSym< T >::WMatrixSym ( size_t  n) [inline, explicit]

Generates new symmetric matrix.

Parameters:
nnumber of rows and cols

Definition at line 143 of file WMatrixSym.h.

template<typename T >
WMatrixSym< T >::WMatrixSym ( ) [inline]

Default constructor leaving all empty.

Definition at line 150 of file WMatrixSym.h.


Member Function Documentation

template<typename T >
const std::vector< T > & WMatrixSym< T >::getData ( ) const [inline]

Returns the elements stored inside of this container.

Returns:
Read-only reference to the elements stored inside this container.

Definition at line 310 of file WMatrixSym.h.

template<typename T >
size_t WMatrixSym< T >::numElements ( ) const [inline]

Returns the number of elements stored in this matrix.

Returns:
the number of elements stored in this matrix.

Definition at line 298 of file WMatrixSym.h.

template<typename T >
T & WMatrixSym< T >::operator() ( size_t  i,
size_t  j 
) throw ( WOutOfBounds ) [inline]

Element acces operator as if the elements where stored as a normal matrix.

Warning:
Acessing elements of the main diagonal is forbidden!
Parameters:
iThe i'th row
jThe j'th column
Returns:
reference to the (i,j) element of the table

Definition at line 173 of file WMatrixSym.h.

template<typename T >
const T & WMatrixSym< T >::operator() ( size_t  i,
size_t  j 
) const throw ( WOutOfBounds ) [inline]

Const version of the element access.

Warning:
Acessing elements of the main diagonal is forbidden!
Parameters:
iThe i'th row
jThe j'th column
Returns:
Const reference to the (i,j) element of the table

Definition at line 156 of file WMatrixSym.h.

template<typename T >
void WMatrixSym< T >::setData ( const std::vector< T > &  data) throw ( WOutOfBounds ) [inline]

Resets the internal data to the given vector of elements.

Parameters:
datanew data in row major arrangement

Definition at line 316 of file WMatrixSym.h.

Referenced by WMatrixSymTest::testAccessOn3x3Matrix(), WMatrixSymTest::testInputStream(), WMatrixSymTest::testOutputStream(), WMatrixSymTest::testSetDataWithInvalidLengthForDimension(), and WMatrixSymTest::testToString().

template<typename T >
size_t WMatrixSym< T >::size ( ) const [inline]

Returns the number of rows and cols of the matrix.

Returns:
The number of rows and cols of the matrix.

Definition at line 304 of file WMatrixSym.h.

template<typename T >
std::string WMatrixSym< T >::toString ( void  ) const [inline]

Renders the matrix to a full nxn matrix, where the main diagonal is set to 0.0 and the m(i,j) == m(j,i).

Each column is separated by exactly one space and each row is separated by a newline.

Returns:
Multiline string containing the nxn symmetric matrix.

Definition at line 190 of file WMatrixSym.h.

Referenced by WMatrixSymTest::testToString().


Member Data Documentation

template<typename T>
std::vector< T > WMatrixSym< T >::m_data [private]

Internal data structure to store the elements.

The order is row major.

Definition at line 134 of file WMatrixSym.h.

Referenced by WMatrixSymTest::testOperatorOn3x3Matrix().

template<typename T>
size_t WMatrixSym< T >::m_n [private]

Number of rows and cols.

Definition at line 139 of file WMatrixSym.h.


The documentation for this class was generated from the following file: