PLMD::Matrix< T > Class Template Reference

This class stores a full matrix and allows one to do some simple matrix operations. More...

#include <WaveletGrid.h>

Inheritance diagram for PLMD::Matrix< T >:
[legend]

## Public Member Functions

Matrix (const Matrix< T > &t)

Matrix (const unsigned nr=0, const unsigned nc=0)

std::vector< T > & getVector ()
Return the contents of the matrix as a vector of length rw*cl. More...

unsigned isSymmetric () const
Test if the matrix is symmetric or not. More...

unsigned ncols () const
Return the number of columns. More...

unsigned nrows () const
Return the number of rows. More...

T & operator() (const unsigned &i, const unsigned &j)
Return a referenre to element i,j of the matrix. More...

const T & operator() (const unsigned &i, const unsigned &j) const
Return element i,j of the matrix. More...

Matrix< T > operator*= (const T &v)
Multiply all elements by v. More...

Matrix< T > & operator+= (const Matrix< T > &m)

Matrix< T > operator+= (const T &v)
Add v to all elements of the Matrix. More...

Matrix< T > & operator-= (const Matrix< T > &m)
Matrix subtraction. More...

Matrix< T > operator-= (const T &v)
Subtract v from all elements of the Matrix. More...

Matrix< T > & operator= (const Matrix< T > &m)
Set the Matrix equal to another Matrix. More...

Matrix< T > & operator= (const std::vector< T > &v)
Set the Matrix equal to the value of a standard vector - used for readin. More...

Matrix< T > & operator= (const T &v)
Set all elements of the matrix equal to the value of v. More...

Row operator[] (unsigned i)
access element (with [][] syntax) More...

Const_row operator[] (unsigned i) const
access element (with [][] syntax) More...

void resize (const unsigned nr, const unsigned nc)
Resize the matrix. More...

void setFromVector (const std::vector< T > &vecin)
Set the matrix from a vector input. More...

## Private Attributes

unsigned cl
Number of columns in matrix. More...

std::vector< T > data
The data in the matrix. More...

unsigned rw
Number of rows in matrix. More...

unsigned sz
Number of elements in matrix (nrows*ncols) More...

## Friends

template<typename U >
void chol_elsolve (const Matrix< U > &, const std::vector< U > &, std::vector< U > &)
Solve a system of equations using the cholesky decomposition. More...

template<typename U >
void cholesky (const Matrix< U > &, Matrix< U > &)
Do a cholesky decomposition of a matrix. More...

template<typename U >
int diagMat (const Matrix< U > &, std::vector< double > &, Matrix< double > &)
Diagonalize a symmetric matrix - returns zero if diagonalization worked. More...

template<typename U >
int Invert (const Matrix< U > &, Matrix< double > &)
Invert a matrix (works for both symmetric and asymmetric matrices) - returns zero if sucesfull. More...

template<typename U >
int logdet (const Matrix< U > &, double &)
Calculate the logarithm of the determinant of a symmetric matrix - returns zero if succesfull. More...

template<typename U >
void matrixOut (Log &, const Matrix< U > &)
Output the Matrix in matrix form. More...

template<typename U >
void mult (const Matrix< U > &, const Matrix< U > &, Matrix< U > &)
Matrix matrix multiply. More...

template<typename U >
void mult (const Matrix< U > &, const std::vector< U > &, std::vector< U > &)
Matrix times a std::vector. More...

template<typename U >
void mult (const std::vector< U > &, const Matrix< U > &, std::vector< U > &)
std::vector times a Matrix More...

template<typename U >
Matrix< U > operator* (U &, const Matrix< U > &)
Multiply matrix by scalar. More...

template<typename U >
Logoperator<< (Log &, const Matrix< U > &)
Output the entire matrix on a single line. More...

template<typename U >
int pseudoInvert (const Matrix< U > &, Matrix< double > &)
Calculate the Moore-Penrose Pseudoinverse of a matrix. More...

template<typename U >
void transpose (const Matrix< U > &, Matrix< U > &)
Matrix transpose. More...

## Detailed Description

### template<typename T> class PLMD::Matrix< T >

This class stores a full matrix and allows one to do some simple matrix operations.

## ◆ Matrix() [1/2]

template<typename T >
 PLMD::Matrix< T >::Matrix ( const unsigned nr = 0, const unsigned nc = 0 )
inline

## ◆ Matrix() [2/2]

template<typename T >
 PLMD::Matrix< T >::Matrix ( const Matrix< T > & t )
inline

## ◆ getVector()

template<typename T >
 std::vector& PLMD::Matrix< T >::getVector ( )
inline

Return the contents of the matrix as a vector of length rw*cl.

## ◆ isSymmetric()

template<typename T >
 unsigned PLMD::Matrix< T >::isSymmetric ( ) const
inline

Test if the matrix is symmetric or not.

## ◆ ncols()

template<typename T >
 unsigned PLMD::Matrix< T >::ncols ( ) const
inline

Return the number of columns.

## ◆ nrows()

template<typename T >
 unsigned PLMD::Matrix< T >::nrows ( ) const
inline

Return the number of rows.

## ◆ operator()() [1/2]

template<typename T >
 T& PLMD::Matrix< T >::operator() ( const unsigned & i, const unsigned & j )
inline

Return a referenre to element i,j of the matrix.

## ◆ operator()() [2/2]

template<typename T >
 const T& PLMD::Matrix< T >::operator() ( const unsigned & i, const unsigned & j ) const
inline

Return element i,j of the matrix.

## ◆ operator*=()

template<typename T >
 Matrix PLMD::Matrix< T >::operator*= ( const T & v )
inline

Multiply all elements by v.

## ◆ operator+=() [1/2]

template<typename T >
 Matrix& PLMD::Matrix< T >::operator+= ( const Matrix< T > & m )
inline

## ◆ operator+=() [2/2]

template<typename T >
 Matrix PLMD::Matrix< T >::operator+= ( const T & v )
inline

Add v to all elements of the Matrix.

## ◆ operator-=() [1/2]

template<typename T >
 Matrix& PLMD::Matrix< T >::operator-= ( const Matrix< T > & m )
inline

Matrix subtraction.

## ◆ operator-=() [2/2]

template<typename T >
 Matrix PLMD::Matrix< T >::operator-= ( const T & v )
inline

Subtract v from all elements of the Matrix.

## ◆ operator=() [1/3]

template<typename T >
 Matrix& PLMD::Matrix< T >::operator= ( const Matrix< T > & m )
inline

Set the Matrix equal to another Matrix.

## ◆ operator=() [2/3]

template<typename T >
 Matrix& PLMD::Matrix< T >::operator= ( const std::vector< T > & v )
inline

Set the Matrix equal to the value of a standard vector - used for readin.

## ◆ operator=() [3/3]

template<typename T >
 Matrix& PLMD::Matrix< T >::operator= ( const T & v )
inline

Set all elements of the matrix equal to the value of v.

## ◆ operator[]() [1/2]

 MatrixSquareBracketsAccess< Matrix< T > , T , unsigned , unsigned >::Row PLMD::MatrixSquareBracketsAccess< Matrix< T > , T , unsigned , unsigned >::operator[] ( unsigned i )
inherited

access element (with [][] syntax)

## ◆ operator[]() [2/2]

 MatrixSquareBracketsAccess< Matrix< T > , T , unsigned , unsigned >::Const_row PLMD::MatrixSquareBracketsAccess< Matrix< T > , T , unsigned , unsigned >::operator[] ( unsigned i ) const
inherited

access element (with [][] syntax)

## ◆ resize()

template<typename T >
 void PLMD::Matrix< T >::resize ( const unsigned nr, const unsigned nc )
inline

Resize the matrix.

## ◆ setFromVector()

template<typename T >
 void PLMD::Matrix< T >::setFromVector ( const std::vector< T > & vecin )
inline

Set the matrix from a vector input.

## ◆ chol_elsolve

template<typename T >
template<typename U >
 void chol_elsolve ( const Matrix< U > & , const std::vector< U > & , std::vector< U > & )
friend

Solve a system of equations using the cholesky decomposition.

## ◆ cholesky

template<typename T >
template<typename U >
 void cholesky ( const Matrix< U > & , Matrix< U > & )
friend

Do a cholesky decomposition of a matrix.

## ◆ diagMat

template<typename T >
template<typename U >
 int diagMat ( const Matrix< U > & , std::vector< double > & , Matrix< double > & )
friend

Diagonalize a symmetric matrix - returns zero if diagonalization worked.

## ◆ Invert

template<typename T >
template<typename U >
 int Invert ( const Matrix< U > & , Matrix< double > & )
friend

Invert a matrix (works for both symmetric and asymmetric matrices) - returns zero if sucesfull.

## ◆ logdet

template<typename T >
template<typename U >
 int logdet ( const Matrix< U > & , double & )
friend

Calculate the logarithm of the determinant of a symmetric matrix - returns zero if succesfull.

## ◆ matrixOut

template<typename T >
template<typename U >
 void matrixOut ( Log & , const Matrix< U > & )
friend

Output the Matrix in matrix form.

## ◆ mult [1/3]

template<typename T >
template<typename U >
 void mult ( const Matrix< U > & , const Matrix< U > & , Matrix< U > & )
friend

Matrix matrix multiply.

## ◆ mult [2/3]

template<typename T >
template<typename U >
 void mult ( const Matrix< U > & , const std::vector< U > & , std::vector< U > & )
friend

Matrix times a std::vector.

## ◆ mult [3/3]

template<typename T >
template<typename U >
 void mult ( const std::vector< U > & , const Matrix< U > & , std::vector< U > & )
friend

std::vector times a Matrix

## ◆ operator*

template<typename T >
template<typename U >
 Matrix operator* ( U & , const Matrix< U > & )
friend

Multiply matrix by scalar.

## ◆ operator<<

template<typename T >
template<typename U >
 Log& operator<< ( Log & , const Matrix< U > & )
friend

Output the entire matrix on a single line.

## ◆ pseudoInvert

template<typename T >
template<typename U >
 int pseudoInvert ( const Matrix< U > & , Matrix< double > & )
friend

Calculate the Moore-Penrose Pseudoinverse of a matrix.

## ◆ transpose

template<typename T >
template<typename U >
 void transpose ( const Matrix< U > & , Matrix< U > & )
friend

Matrix transpose.

## ◆ cl

template<typename T >
 unsigned PLMD::Matrix< T >::cl
private

Number of columns in matrix.

## ◆ data

template<typename T >
 std::vector PLMD::Matrix< T >::data
private

The data in the matrix.

## ◆ rw

template<typename T >
 unsigned PLMD::Matrix< T >::rw
private

Number of rows in matrix.

## ◆ sz

template<typename T >
 unsigned PLMD::Matrix< T >::sz
private

Number of elements in matrix (nrows*ncols)

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