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 22 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 25 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 28 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 36 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 51 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 59 of file Matrix.h.

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

Definition at line 68 of file Matrix.h.

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

Definition at line 228 of file Matrix.h.


Member Function Documentation

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

returns the number of rows

Definition at line 72 of file Matrix.h.

Referenced by RDNumeric::Matrix< double >::assign(), RDNumeric::multiply(), RDNumeric::SquareMatrix< double >::operator *=(), RDNumeric::Matrix< double >::operator+=(), RDNumeric::Matrix< double >::operator-=(), operator<<(), and RDNumeric::Matrix< double >::transpose().

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

returns the number of columns

Definition at line 77 of file Matrix.h.

Referenced by RDNumeric::Matrix< double >::assign(), RDNumeric::multiply(), RDNumeric::Matrix< double >::operator+=(), RDNumeric::Matrix< double >::operator-=(), operator<<(), and RDNumeric::Matrix< double >::transpose().

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

Definition at line 81 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 86 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 94 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 103 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 114 of file Matrix.h.

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

returns a pointer to our data array

Definition at line 126 of file Matrix.h.

Referenced by RDNumeric::Matrix< double >::assign(), RDNumeric::Matrix< double >::Matrix(), RDNumeric::multiply(), RDNumeric::SquareMatrix< double >::operator *=(), RDNumeric::Matrix< double >::operator+=(), RDNumeric::Matrix< double >::operator-=(), and RDNumeric::Matrix< double >::transpose().

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

returns a const pointer to our data array

Definition at line 131 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 140 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 152 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 167 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 180 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 190 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 207 of file Matrix.h.


Member Data Documentation

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

Definition at line 228 of file Matrix.h.

Referenced by RDNumeric::Matrix< double >::assign(), RDNumeric::Matrix< double >::getCol(), RDNumeric::Matrix< double >::getRow(), RDNumeric::Matrix< double >::getVal(), RDNumeric::Matrix< double >::numRows(), RDNumeric::SquareMatrix< double >::operator *=(), RDNumeric::Matrix< double >::operator+=(), RDNumeric::Matrix< double >::operator-=(), RDNumeric::Matrix< double >::setVal(), RDNumeric::Matrix< double >::transpose(), and RDNumeric::SquareMatrix< double >::transposeInplace().

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

Definition at line 230 of file Matrix.h.

Referenced by RDNumeric::Matrix< double >::assign(), RDNumeric::Matrix< double >::getCol(), RDNumeric::Matrix< double >::getRow(), RDNumeric::Matrix< double >::getVal(), RDNumeric::Matrix< double >::numCols(), RDNumeric::SquareMatrix< double >::operator *=(), RDNumeric::Matrix< double >::operator+=(), RDNumeric::Matrix< double >::operator-=(), RDNumeric::Matrix< double >::setVal(), RDNumeric::Matrix< double >::transpose(), and RDNumeric::SquareMatrix< double >::transposeInplace().

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

Definition at line 231 of file Matrix.h.

Referenced by RDNumeric::Matrix< double >::assign(), RDNumeric::Matrix< double >::getDataSize(), RDNumeric::Matrix< double >::Matrix(), RDNumeric::SquareMatrix< double >::operator *=(), RDNumeric::Matrix< double >::operator *=(), RDNumeric::Matrix< double >::operator+=(), RDNumeric::Matrix< double >::operator-=(), and RDNumeric::Matrix< double >::operator/=().

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

Definition at line 232 of file Matrix.h.

Referenced by RDNumeric::Matrix< double >::assign(), RDNumeric::Matrix< double >::getCol(), RDNumeric::Matrix< double >::getData(), RDNumeric::Matrix< double >::getRow(), RDNumeric::Matrix< double >::getVal(), RDNumeric::Matrix< double >::Matrix(), RDNumeric::SquareMatrix< double >::operator *=(), RDNumeric::Matrix< double >::operator *=(), RDNumeric::Matrix< double >::operator+=(), RDNumeric::Matrix< double >::operator-=(), RDNumeric::Matrix< double >::operator/=(), RDNumeric::Matrix< double >::setVal(), RDNumeric::Matrix< double >::transpose(), and RDNumeric::SquareMatrix< double >::transposeInplace().


The documentation for this class was generated from the following file:
Generated on Sat May 24 08:36:34 2008 for RDCode by  doxygen 1.5.3