Public Types | Public Member Functions | Protected Member Functions | Protected Attributes

RDNumeric::Matrix< TYPE > Class Template Reference

A matrix class for general, non-square matrices. More...

#include <Matrix.h>

Inheritance diagram for RDNumeric::Matrix< TYPE >:
RDNumeric::SquareMatrix< TYPE >

List of all members.

Public Types

typedef boost::shared_array< TYPE > DATA_SPTR

Public Member Functions

 Matrix (unsigned int nRows, unsigned int nCols)
 Initialize with a size.
 Matrix (unsigned int nRows, unsigned int nCols, TYPE val)
 Initialize with a size and default value.
 Matrix (unsigned int nRows, unsigned int nCols, DATA_SPTR data)
 Initialize from a pointer.
 Matrix (const Matrix< TYPE > &other)
 copy constructor
virtual ~Matrix ()
unsigned int numRows () const
 returns the number of rows
unsigned int numCols () const
 returns the number of columns
unsigned int getDataSize () const
virtual TYPE getVal (unsigned int i, unsigned int j) const
 returns a particular element of the matrix
virtual void setVal (unsigned int i, unsigned int j, TYPE val)
 sets a particular element of the matrix
virtual void getRow (unsigned int i, Vector< TYPE > &row) const
 returns a copy of a row of the matrix
virtual void getCol (unsigned int i, Vector< TYPE > &col) const
 returns a copy of a column of the matrix
TYPE * getData ()
 returns a pointer to our data array
const TYPE * getData () const
 returns a const pointer to our data array
Matrix< TYPE > & assign (const Matrix< TYPE > &other)
 Copy operator.
virtual Matrix< TYPE > & operator+= (const Matrix< TYPE > &other)
 Matrix addition.
virtual Matrix< TYPE > & operator-= (const Matrix< TYPE > &other)
 Matrix subtraction.
virtual Matrix< TYPE > & operator*= (TYPE scale)
 Multiplication by a scalar.
virtual Matrix< TYPE > & operator/= (TYPE scale)
 division by a scalar
virtual Matrix< TYPE > & transpose (Matrix< TYPE > &transpose) const
 copies the transpose of this Matrix into another, returns the result

Protected Member Functions

 Matrix ()

Protected Attributes

unsigned int d_nRows
unsigned int d_nCols
unsigned int d_dataSize
DATA_SPTR d_data

Detailed Description

template<class TYPE>
class RDNumeric::Matrix< TYPE >

A matrix class for general, non-square matrices.

Definition at line 27 of file Matrix.h.


Member Typedef Documentation

template<class TYPE>
typedef boost::shared_array<TYPE> RDNumeric::Matrix< TYPE >::DATA_SPTR

Reimplemented in DistGeom::BoundsMatrix.

Definition at line 30 of file Matrix.h.


Constructor & Destructor Documentation

template<class TYPE>
RDNumeric::Matrix< TYPE >::Matrix ( unsigned int  nRows,
unsigned int  nCols 
) [inline]

Initialize with a size.

Definition at line 33 of file Matrix.h.

template<class TYPE>
RDNumeric::Matrix< TYPE >::Matrix ( unsigned int  nRows,
unsigned int  nCols,
TYPE  val 
) [inline]

Initialize with a size and default value.

Definition at line 41 of file Matrix.h.

template<class TYPE>
RDNumeric::Matrix< TYPE >::Matrix ( unsigned int  nRows,
unsigned int  nCols,
DATA_SPTR  data 
) [inline]

Initialize from a pointer.

NOTE: this does not take ownership of the data, if you delete the data externally, this Matrix will be sad.

Definition at line 56 of file Matrix.h.

template<class TYPE>
RDNumeric::Matrix< TYPE >::Matrix ( const Matrix< TYPE > &  other  )  [inline]

copy constructor

We make a copy of the other vector's data.

Definition at line 64 of file Matrix.h.

template<class TYPE>
virtual RDNumeric::Matrix< TYPE >::~Matrix (  )  [inline, virtual]

Definition at line 73 of file Matrix.h.

template<class TYPE>
RDNumeric::Matrix< TYPE >::Matrix (  )  [inline, protected]

Definition at line 233 of file Matrix.h.


Member Function Documentation

template<class TYPE>
Matrix<TYPE>& RDNumeric::Matrix< TYPE >::assign ( const Matrix< TYPE > &  other  )  [inline]

Copy operator.

We make a copy of the other Matrix's data.

Definition at line 145 of file Matrix.h.

template<class TYPE>
virtual void RDNumeric::Matrix< TYPE >::getCol ( unsigned int  i,
Vector< TYPE > &  col 
) const [inline, virtual]

returns a copy of a column of the matrix

Definition at line 119 of file Matrix.h.

template<class TYPE>
const TYPE* RDNumeric::Matrix< TYPE >::getData (  )  const [inline]

returns a const pointer to our data array

Definition at line 136 of file Matrix.h.

template<class TYPE>
unsigned int RDNumeric::Matrix< TYPE >::getDataSize (  )  const [inline]

Definition at line 86 of file Matrix.h.

template<class TYPE>
virtual void RDNumeric::Matrix< TYPE >::getRow ( unsigned int  i,
Vector< TYPE > &  row 
) const [inline, virtual]

returns a copy of a row of the matrix

Definition at line 108 of file Matrix.h.

template<class TYPE>
virtual TYPE RDNumeric::Matrix< TYPE >::getVal ( unsigned int  i,
unsigned int  j 
) const [inline, virtual]

returns a particular element of the matrix

Definition at line 91 of file Matrix.h.

Referenced by operator<<().

template<class TYPE>
unsigned int RDNumeric::Matrix< TYPE >::numCols (  )  const [inline]
template<class TYPE>
virtual Matrix<TYPE>& RDNumeric::Matrix< TYPE >::operator*= ( TYPE  scale  )  [inline, virtual]

Multiplication by a scalar.

Reimplemented in RDNumeric::SquareMatrix< TYPE >, and RDNumeric::SquareMatrix< double >.

Definition at line 185 of file Matrix.h.

template<class TYPE>
virtual Matrix<TYPE>& RDNumeric::Matrix< TYPE >::operator+= ( const Matrix< TYPE > &  other  )  [inline, virtual]

Matrix addition.

Perform a element by element addition of other Matrix to this Matrix

Definition at line 157 of file Matrix.h.

template<class TYPE>
virtual Matrix<TYPE>& RDNumeric::Matrix< TYPE >::operator-= ( const Matrix< TYPE > &  other  )  [inline, virtual]

Matrix subtraction.

Perform a element by element subtraction of other Matrix from this Matrix

Definition at line 172 of file Matrix.h.

template<class TYPE>
virtual Matrix<TYPE>& RDNumeric::Matrix< TYPE >::operator/= ( TYPE  scale  )  [inline, virtual]

division by a scalar

Definition at line 195 of file Matrix.h.

template<class TYPE>
virtual void RDNumeric::Matrix< TYPE >::setVal ( unsigned int  i,
unsigned int  j,
TYPE  val 
) [inline, virtual]

sets a particular element of the matrix

Definition at line 99 of file Matrix.h.

template<class TYPE>
virtual Matrix<TYPE>& RDNumeric::Matrix< TYPE >::transpose ( Matrix< TYPE > &  transpose  )  const [inline, virtual]

copies the transpose of this Matrix into another, returns the result

Parameters:
transpose the Matrix to store the results
Returns:
the transpose of this matrix. This is just a reference to the argument.

Definition at line 212 of file Matrix.h.


Member Data Documentation


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