RDNumeric::Vector< TYPE > Class Template Reference

A class to represent vectors of numbers. More...

#include <Vector.h>

List of all members.

Public Types

typedef boost::shared_array< TYPE > DATA_SPTR

Public Member Functions

 Vector (unsigned int N)
 Initialize with only a size.
 Vector (unsigned int N, TYPE val)
 Initialize with a size and default value.
 Vector (unsigned int N, DATA_SPTR data)
 Initialize from a smart pointer.
 Vector (const Vector &other)
 copy constructor
 ~Vector ()
unsigned int size () const
 return the size (dimension) of the vector
TYPE getVal (unsigned int i) const
 returns the value at a particular index
void setVal (unsigned int i, TYPE val)
 sets the index at a particular value
TYPE operator[] (unsigned int i) const
TYPE & operator[] (unsigned int i)
TYPE * getData ()
 returns a pointer to our data array
const TYPE * getData () const
 returns a const pointer to our data array
Vector< TYPE > & assign (const Vector< TYPE > &other)
 Copy operator.
Vector< TYPE > & operator+= (const Vector< TYPE > &other)
 elementwise addition, vectors must be the same size.
Vector< TYPE > & operator-= (const Vector< TYPE > &other)
 elementwise subtraction, vectors must be the same size.
Vector< TYPE > & operator*= (TYPE scale)
 multiplication by a scalar
Vector< TYPE > & operator/= (TYPE scale)
 division by a scalar
TYPE normL2Sq () const
 L2 norm squared.
TYPE normL2 () const
 L2 norm.
TYPE normL1 () const
 L1 norm.
TYPE normLinfinity () const
 L-infinity norm.
unsigned int largestAbsValId () const
 Gets the ID of the entry that has the largest absolute value i.e. the entry being used for the L-infinity norm.
unsigned int largestValId () const
 Gets the ID of the entry that has the largest value.
TYPE dotProduct (const Vector< TYPE > other)
 returns the dot product between two Vectors
void normalize ()
 Normalize the vector using the L2 norm.
void setToRandom (unsigned int seed=0)
 Set to a random unit vector.


Detailed Description

template<class TYPE>
class RDNumeric::Vector< TYPE >

A class to represent vectors of numbers.

Definition at line 24 of file Vector.h.


Member Typedef Documentation

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

Definition at line 28 of file Vector.h.


Constructor & Destructor Documentation

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

Initialize with only a size.

Definition at line 31 of file Vector.h.

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

Initialize with a size and default value.

Definition at line 39 of file Vector.h.

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

Initialize from a smart pointer.

NOTE: the data is not copied in this case

Definition at line 54 of file Vector.h.

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

copy constructor

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

Definition at line 62 of file Vector.h.

References RDNumeric::Vector< TYPE >::getData(), and RDNumeric::Vector< TYPE >::size().

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

Definition at line 71 of file Vector.h.


Member Function Documentation

template<class TYPE>
unsigned int RDNumeric::Vector< TYPE >::size (  )  const [inline]

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

returns the value at a particular index

Definition at line 80 of file Vector.h.

References RANGE_CHECK.

Referenced by operator<<().

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

sets the index at a particular value

Definition at line 86 of file Vector.h.

References RANGE_CHECK.

template<class TYPE>
TYPE RDNumeric::Vector< TYPE >::operator[] ( unsigned int  i  )  const [inline]

Definition at line 91 of file Vector.h.

References RANGE_CHECK.

template<class TYPE>
TYPE& RDNumeric::Vector< TYPE >::operator[] ( unsigned int  i  )  [inline]

Definition at line 96 of file Vector.h.

References RANGE_CHECK.

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

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

returns a const pointer to our data array

Definition at line 107 of file Vector.h.

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

Copy operator.

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

Definition at line 116 of file Vector.h.

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

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

elementwise addition, vectors must be the same size.

Definition at line 124 of file Vector.h.

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

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

elementwise subtraction, vectors must be the same size.

Definition at line 136 of file Vector.h.

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

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

multiplication by a scalar

Definition at line 148 of file Vector.h.

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

division by a scalar

Definition at line 157 of file Vector.h.

template<class TYPE>
TYPE RDNumeric::Vector< TYPE >::normL2Sq (  )  const [inline]

L2 norm squared.

Definition at line 166 of file Vector.h.

Referenced by RDNumeric::Vector< TYPE >::normL2().

template<class TYPE>
TYPE RDNumeric::Vector< TYPE >::normL2 (  )  const [inline]

L2 norm.

Definition at line 177 of file Vector.h.

References RDNumeric::Vector< TYPE >::normL2Sq().

Referenced by RDNumeric::Vector< TYPE >::normalize().

template<class TYPE>
TYPE RDNumeric::Vector< TYPE >::normL1 (  )  const [inline]

L1 norm.

Definition at line 182 of file Vector.h.

template<class TYPE>
TYPE RDNumeric::Vector< TYPE >::normLinfinity (  )  const [inline]

L-infinity norm.

Definition at line 193 of file Vector.h.

template<class TYPE>
unsigned int RDNumeric::Vector< TYPE >::largestAbsValId (  )  const [inline]

Gets the ID of the entry that has the largest absolute value i.e. the entry being used for the L-infinity norm.

Definition at line 207 of file Vector.h.

template<class TYPE>
unsigned int RDNumeric::Vector< TYPE >::largestValId (  )  const [inline]

Gets the ID of the entry that has the largest value.

Definition at line 221 of file Vector.h.

template<class TYPE>
TYPE RDNumeric::Vector< TYPE >::dotProduct ( const Vector< TYPE >  other  )  [inline]

returns the dot product between two Vectors

Definition at line 235 of file Vector.h.

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

template<class TYPE>
void RDNumeric::Vector< TYPE >::normalize (  )  [inline]

Normalize the vector using the L2 norm.

Definition at line 248 of file Vector.h.

References RDNumeric::Vector< TYPE >::normL2().

Referenced by RDNumeric::Vector< TYPE >::setToRandom().

template<class TYPE>
void RDNumeric::Vector< TYPE >::setToRandom ( unsigned int  seed = 0  )  [inline]

Set to a random unit vector.

Definition at line 254 of file Vector.h.

References RDNumeric::Vector< TYPE >::normalize().


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

Generated on Fri Apr 3 06:03:04 2009 for RDCode by  doxygen 1.5.6