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 23 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 26 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 29 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 37 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 52 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 60 of file Matrix.h.

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

Definition at line 69 of file Matrix.h.

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

Definition at line 229 of file Matrix.h.


Member Function Documentation

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

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

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

Definition at line 82 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 87 of file Matrix.h.

Referenced by operator<<().

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 95 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 104 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 115 of file Matrix.h.

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

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

returns a const pointer to our data array

Definition at line 132 of file Matrix.h.

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 141 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 153 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 168 of file Matrix.h.

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 181 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 191 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 208 of file Matrix.h.


Member Data Documentation

template<class TYPE>
unsigned int RDNumeric::Matrix< TYPE >::d_nRows [protected]

template<class TYPE>
unsigned int RDNumeric::Matrix< TYPE >::d_nCols [protected]

template<class TYPE>
unsigned int RDNumeric::Matrix< TYPE >::d_dataSize [protected]

template<class TYPE>
DATA_SPTR RDNumeric::Matrix< TYPE >::d_data [protected]


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

Generated on Tue Oct 7 06:10:13 2008 for RDCode by  doxygen 1.5.5