RDNumeric::SymmMatrix< TYPE > Class Template Reference

A symmetric matrix class. More...

#include <SymmMatrix.h>

List of all members.

Public Types

typedef
boost::shared_array
< TYPE > 
DATA_SPTR

Public Member Functions

 SymmMatrix (unsigned int N)
 SymmMatrix (unsigned int N, TYPE val)
 SymmMatrix (unsigned int N, DATA_SPTR data)
 SymmMatrix (const SymmMatrix< TYPE > &other)
 ~SymmMatrix ()
unsigned int numRows () const
 returns the number of rows
unsigned int numCols () const
 returns the number of columns
unsigned int getDataSize () const
void setToIdentity ()
TYPE getVal (unsigned int i, unsigned int j) const
void setVal (unsigned int i, unsigned int j, TYPE val)
void getRow (unsigned int i, Vector< TYPE > &row)
void getCol (unsigned int i, Vector< TYPE > &col)
TYPE * getData ()
 returns a pointer to our data array
const TYPE * getData () const
 returns a const pointer to our data array
SymmMatrix< TYPE > & operator *= (TYPE scale)
SymmMatrix< TYPE > & operator/= (TYPE scale)
SymmMatrix< TYPE > & operator+= (const SymmMatrix< TYPE > &other)
SymmMatrix< TYPE > & operator-= (const SymmMatrix< TYPE > &other)
SymmMatrix< TYPE > & operator *= (const SymmMatrix< TYPE > &B)
 in-place matrix multiplication
SymmMatrix< TYPE > & transpose (SymmMatrix< TYPE > &transpose) const
SymmMatrix< TYPE > & transposeInplace ()

Protected Member Functions

 SymmMatrix ()

Protected Attributes

unsigned int d_size
unsigned int d_dataSize
DATA_SPTR d_data


Detailed Description

template<class TYPE>
class RDNumeric::SymmMatrix< TYPE >

A symmetric matrix class.

The data is stored as the lower triangle, so A[i,j] = data[i*(i+1) + j] when i >= j and A[i,j] = data[j*(j+1) + i] when i < j

Definition at line 23 of file SymmMatrix.h.


Member Typedef Documentation

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

Definition at line 25 of file SymmMatrix.h.


Constructor & Destructor Documentation

template<class TYPE>
RDNumeric::SymmMatrix< TYPE >::SymmMatrix ( unsigned int  N  )  [inline, explicit]

Definition at line 27 of file SymmMatrix.h.

References RDNumeric::SymmMatrix< TYPE >::d_data, and RDNumeric::SymmMatrix< TYPE >::d_dataSize.

template<class TYPE>
RDNumeric::SymmMatrix< TYPE >::SymmMatrix ( unsigned int  N,
TYPE  val 
) [inline]

Definition at line 34 of file SymmMatrix.h.

References RDNumeric::SymmMatrix< TYPE >::d_data, and RDNumeric::SymmMatrix< TYPE >::d_dataSize.

template<class TYPE>
RDNumeric::SymmMatrix< TYPE >::SymmMatrix ( unsigned int  N,
DATA_SPTR  data 
) [inline]

Definition at line 44 of file SymmMatrix.h.

References RDNumeric::SymmMatrix< TYPE >::d_data.

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

Definition at line 49 of file SymmMatrix.h.

References RDNumeric::SymmMatrix< TYPE >::d_data, RDNumeric::SymmMatrix< TYPE >::d_dataSize, and RDNumeric::SymmMatrix< TYPE >::getData().

template<class TYPE>
RDNumeric::SymmMatrix< TYPE >::~SymmMatrix (  )  [inline]

Definition at line 59 of file SymmMatrix.h.

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

Definition at line 237 of file SymmMatrix.h.


Member Function Documentation

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

returns the number of rows

Definition at line 62 of file SymmMatrix.h.

References RDNumeric::SymmMatrix< TYPE >::d_size.

Referenced by RDNumeric::multiply(), RDNumeric::SymmMatrix< TYPE >::operator *=(), RDNumeric::SymmMatrix< TYPE >::operator+=(), RDNumeric::SymmMatrix< TYPE >::operator-=(), operator<<(), and RDNumeric::SymmMatrix< TYPE >::transpose().

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

returns the number of columns

Definition at line 67 of file SymmMatrix.h.

References RDNumeric::SymmMatrix< TYPE >::d_size.

Referenced by operator<<().

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

Definition at line 71 of file SymmMatrix.h.

References RDNumeric::SymmMatrix< TYPE >::d_dataSize.

template<class TYPE>
void RDNumeric::SymmMatrix< TYPE >::setToIdentity (  )  [inline]

Definition at line 75 of file SymmMatrix.h.

References RDNumeric::SymmMatrix< TYPE >::d_data, RDNumeric::SymmMatrix< TYPE >::d_dataSize, and RDNumeric::SymmMatrix< TYPE >::d_size.

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

Definition at line 83 of file SymmMatrix.h.

References RDNumeric::SymmMatrix< TYPE >::d_data, RDNumeric::SymmMatrix< TYPE >::d_size, and RANGE_CHECK.

Referenced by operator<<().

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

Definition at line 95 of file SymmMatrix.h.

References RDNumeric::SymmMatrix< TYPE >::d_data, RDNumeric::SymmMatrix< TYPE >::d_size, and RANGE_CHECK.

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

Definition at line 107 of file SymmMatrix.h.

References CHECK_INVARIANT, RDNumeric::SymmMatrix< TYPE >::d_data, RDNumeric::SymmMatrix< TYPE >::d_size, RDNumeric::Vector< TYPE >::getData(), and RDNumeric::Vector< TYPE >::size().

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

Definition at line 122 of file SymmMatrix.h.

References CHECK_INVARIANT, RDNumeric::SymmMatrix< TYPE >::d_data, RDNumeric::SymmMatrix< TYPE >::d_size, RDNumeric::Vector< TYPE >::getData(), and RDNumeric::Vector< TYPE >::size().

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

returns a pointer to our data array

Definition at line 138 of file SymmMatrix.h.

References RDNumeric::SymmMatrix< TYPE >::d_data.

Referenced by RDNumeric::multiply(), RDNumeric::SymmMatrix< TYPE >::operator *=(), RDNumeric::SymmMatrix< TYPE >::operator+=(), RDNumeric::SymmMatrix< TYPE >::operator-=(), RDNumeric::SymmMatrix< TYPE >::SymmMatrix(), and RDNumeric::SymmMatrix< TYPE >::transpose().

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

returns a const pointer to our data array

Definition at line 143 of file SymmMatrix.h.

References RDNumeric::SymmMatrix< TYPE >::d_data.

template<class TYPE>
SymmMatrix<TYPE>& RDNumeric::SymmMatrix< TYPE >::operator *= ( TYPE  scale  )  [inline]

Definition at line 147 of file SymmMatrix.h.

References RDNumeric::SymmMatrix< TYPE >::d_data, and RDNumeric::SymmMatrix< TYPE >::d_dataSize.

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

Definition at line 155 of file SymmMatrix.h.

References RDNumeric::SymmMatrix< TYPE >::d_data, and RDNumeric::SymmMatrix< TYPE >::d_dataSize.

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

Definition at line 163 of file SymmMatrix.h.

References CHECK_INVARIANT, RDNumeric::SymmMatrix< TYPE >::d_data, RDNumeric::SymmMatrix< TYPE >::d_dataSize, RDNumeric::SymmMatrix< TYPE >::d_size, RDNumeric::SymmMatrix< TYPE >::getData(), and RDNumeric::SymmMatrix< TYPE >::numRows().

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

Definition at line 173 of file SymmMatrix.h.

References CHECK_INVARIANT, RDNumeric::SymmMatrix< TYPE >::d_data, RDNumeric::SymmMatrix< TYPE >::d_dataSize, RDNumeric::SymmMatrix< TYPE >::d_size, RDNumeric::SymmMatrix< TYPE >::getData(), and RDNumeric::SymmMatrix< TYPE >::numRows().

template<class TYPE>
SymmMatrix<TYPE>& RDNumeric::SymmMatrix< TYPE >::operator *= ( const SymmMatrix< TYPE > &  B  )  [inline]

in-place matrix multiplication

Definition at line 184 of file SymmMatrix.h.

References CHECK_INVARIANT, RDNumeric::SymmMatrix< TYPE >::d_data, RDNumeric::SymmMatrix< TYPE >::d_dataSize, RDNumeric::SymmMatrix< TYPE >::d_size, RDNumeric::SymmMatrix< TYPE >::getData(), and RDNumeric::SymmMatrix< TYPE >::numRows().

template<class TYPE>
SymmMatrix<TYPE>& RDNumeric::SymmMatrix< TYPE >::transpose ( SymmMatrix< TYPE > &  transpose  )  const [inline]

Definition at line 220 of file SymmMatrix.h.

References CHECK_INVARIANT, RDNumeric::SymmMatrix< TYPE >::d_data, RDNumeric::SymmMatrix< TYPE >::d_dataSize, RDNumeric::SymmMatrix< TYPE >::d_size, RDNumeric::SymmMatrix< TYPE >::getData(), and RDNumeric::SymmMatrix< TYPE >::numRows().

template<class TYPE>
SymmMatrix<TYPE>& RDNumeric::SymmMatrix< TYPE >::transposeInplace (  )  [inline]

Definition at line 230 of file SymmMatrix.h.


Member Data Documentation

template<class TYPE>
unsigned int RDNumeric::SymmMatrix< TYPE >::d_size [protected]

Definition at line 237 of file SymmMatrix.h.

Referenced by RDNumeric::SymmMatrix< TYPE >::getCol(), RDNumeric::SymmMatrix< TYPE >::getRow(), RDNumeric::SymmMatrix< TYPE >::getVal(), RDNumeric::SymmMatrix< TYPE >::numCols(), RDNumeric::SymmMatrix< TYPE >::numRows(), RDNumeric::SymmMatrix< TYPE >::operator *=(), RDNumeric::SymmMatrix< TYPE >::operator+=(), RDNumeric::SymmMatrix< TYPE >::operator-=(), RDNumeric::SymmMatrix< TYPE >::setToIdentity(), RDNumeric::SymmMatrix< TYPE >::setVal(), and RDNumeric::SymmMatrix< TYPE >::transpose().

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

Definition at line 239 of file SymmMatrix.h.

Referenced by RDNumeric::SymmMatrix< TYPE >::getDataSize(), RDNumeric::SymmMatrix< TYPE >::operator *=(), RDNumeric::SymmMatrix< TYPE >::operator+=(), RDNumeric::SymmMatrix< TYPE >::operator-=(), RDNumeric::SymmMatrix< TYPE >::operator/=(), RDNumeric::SymmMatrix< TYPE >::setToIdentity(), RDNumeric::SymmMatrix< TYPE >::SymmMatrix(), and RDNumeric::SymmMatrix< TYPE >::transpose().

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

Definition at line 240 of file SymmMatrix.h.

Referenced by RDNumeric::SymmMatrix< TYPE >::getCol(), RDNumeric::SymmMatrix< TYPE >::getData(), RDNumeric::SymmMatrix< TYPE >::getRow(), RDNumeric::SymmMatrix< TYPE >::getVal(), RDNumeric::SymmMatrix< TYPE >::operator *=(), RDNumeric::SymmMatrix< TYPE >::operator+=(), RDNumeric::SymmMatrix< TYPE >::operator-=(), RDNumeric::SymmMatrix< TYPE >::operator/=(), RDNumeric::SymmMatrix< TYPE >::setToIdentity(), RDNumeric::SymmMatrix< TYPE >::setVal(), RDNumeric::SymmMatrix< TYPE >::SymmMatrix(), and RDNumeric::SymmMatrix< TYPE >::transpose().


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