Ravelin
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
Ravelin::VECTORN Class Reference

A generic N-dimensional floating point vector. More...

#include <VectorNd.h>

Public Member Functions

template<class ForwardIterator >
 VECTORN (ForwardIterator begin, ForwardIterator end)
 
 VECTORN (unsigned N)
 
 VECTORN (const VECTORN &source)
 
 VECTORN (const SHAREDVECTORN &source)
 
 VECTORN (const CONST_SHAREDVECTORN &source)
 
 VECTORN (const VECTOR2 &v)
 
 VECTORN (const VECTOR3 &v)
 
 VECTORN (const MATRIXN &v)
 
 VECTORN (const SHAREDMATRIXN &v)
 
 VECTORN (const CONST_SHAREDMATRIXN &v)
 
 VECTORN (unsigned N, const REAL *array)
 
VECTORNnormalize ()
 
unsigned size () const
 
REAL norm_inf () const
 
REAL norm1 () const
 
REAL norm () const
 
REAL norm_sq () const
 
VECTORNaugment (const VECTORN &v)
 
VECTORNresize (unsigned N, bool preserve=false)
 
SHAREDVECTORN segment (unsigned start_idx, unsigned end_idx)
 
CONST_SHAREDVECTORN segment (unsigned start_idx, unsigned end_idx) const
 
VECTORNoperator= (REAL r)
 
VECTORNoperator= (const VECTOR2 &source)
 
VECTORNoperator= (const VECTOR3 &source)
 
VECTORNoperator= (const VECTORN &source)
 
VECTORNoperator= (const SHAREDVECTORN &source)
 
VECTORNoperator= (const CONST_SHAREDVECTORN &source)
 
VECTORNoperator= (const MATRIXN &source)
 
VECTORNoperator= (const SHAREDMATRIXN &source)
 
VECTORNoperator= (const CONST_SHAREDMATRIXN &source)
 
VECTORNoperator/= (REAL scalar)
 
REAL * data ()
 
const REAL * data () const
 
VECTORNresize (unsigned m, unsigned n, bool preserve=false)
 
void free_memory ()
 
void compress ()
 
unsigned rows () const
 
unsigned columns () const
 
unsigned leading_dim () const
 
unsigned inc () const
 
REAL & operator[] (unsigned i)
 Returns the desired component of this vector.
 
REAL operator[] (unsigned i) const
 Returns the desired component of this vector.
 
REAL * data (unsigned i)
 Gets the appropriate data element.
 
const REAL * data (unsigned i) const
 Gets the appropriate data element.
 
COLUMN_ITERATOR segment_iterator_begin (unsigned start, unsigned end)
 
CONST_COLUMN_ITERATOR segment_iterator_begin (unsigned start, unsigned end) const
 
COLUMN_ITERATOR segment_iterator_end (unsigned start, unsigned end)
 
CONST_COLUMN_ITERATOR segment_iterator_end (unsigned start, unsigned end) const
 
CONST_ROW_ITERATOR row_iterator_begin () const
 
CONST_ROW_ITERATOR row_iterator_end () const
 
ROW_ITERATOR row_iterator_begin ()
 
ROW_ITERATOR row_iterator_end ()
 
CONST_COLUMN_ITERATOR column_iterator_begin () const
 
CONST_COLUMN_ITERATOR column_iterator_end () const
 
COLUMN_ITERATOR column_iterator_begin ()
 
COLUMN_ITERATOR column_iterator_end ()
 
COLUMN_ITERATOR begin ()
 Returns the column iterator.
 
CONST_COLUMN_ITERATOR begin () const
 Returns the constant column iterator.
 
COLUMN_ITERATOR end ()
 Returns the column iterator.
 
CONST_COLUMN_ITERATOR end () const
 Returns the constant column iterator.
 
XVECTORN & set_zero ()
 Sets the vector to the zero vector.
 
XVECTORN & set_zero (unsigned m, unsigned n=1)
 Sets the vector to the zero vector.
 
XVECTORN & set_one ()
 Sets the vector to the zero vector.
 
XVECTORN & set_one (unsigned m, unsigned n=1)
 Sets the vector to the zero vector.
 
bool is_finite () const
 Returns true if all components of this vector are not infinite and not NaN, and false otherwise.
 
XVECTORN & negate ()
 Negates the matrix in place.
 
XVECTORN & operator*= (REAL scalar)
 Multiplies this vector in place by a scalar.
 
template<class V >
XVECTORN & set_sub_vec (unsigned start, const V &v)
 Sets a sub-vector of this vector. More...
 
template<class V >
XVECTORN & operator+= (const V &v)
 Adds a vector from this one in place.
 
template<class V >
XVECTORN & operator-= (const V &v)
 Subtracts a vector from this one in place.
 
template<class ForwardIterator , class V >
XVECTORN & set (ForwardIterator idx_begin, ForwardIterator idx_end, const V &v)
 Sets a subvector; other components are unchanged.
 
template<class V >
XVECTORN & set (std::vector< bool > &indices, const V &v)
 Sets a subvector; other components are unchanged.
 
template<class V >
V & get_sub_vec (unsigned start, unsigned end, V &v) const
 Gets a sub-vector from this vector. More...
 
template<class V >
bool operator< (const V &v) const
 Compares two vectors lexographically.
 
template<class V >
bool operator== (const V &v) const
 Compares two vectors. More...
 
template<class V >
REAL dot (const V &v) const
 Computes the dot-product between two vectors.
 
template<class V >
V & select (const std::vector< bool > &indices, V &v) const
 Gets a subvector (not necessarily contiguous)
 
template<class ForwardIterator , class V >
V & select (ForwardIterator idx_begin, ForwardIterator idx_end, V &v) const
 Gets a subvector (not necessarily contiguous)
 
template<class ForwardIterator >
 VECTORN (ForwardIterator begin, ForwardIterator end)
 
 VECTORN (unsigned N)
 
 VECTORN (const VECTORN &source)
 
 VECTORN (const SHAREDVECTORN &source)
 
 VECTORN (const CONST_SHAREDVECTORN &source)
 
 VECTORN (const VECTOR2 &v)
 
 VECTORN (const VECTOR3 &v)
 
 VECTORN (const MATRIXN &v)
 
 VECTORN (const SHAREDMATRIXN &v)
 
 VECTORN (const CONST_SHAREDMATRIXN &v)
 
 VECTORN (unsigned N, const REAL *array)
 
VECTORNnormalize ()
 
unsigned size () const
 
REAL norm_inf () const
 
REAL norm1 () const
 
REAL norm () const
 
REAL norm_sq () const
 
VECTORNaugment (const VECTORN &v)
 
VECTORNresize (unsigned N, bool preserve=false)
 
SHAREDVECTORN segment (unsigned start_idx, unsigned end_idx)
 
CONST_SHAREDVECTORN segment (unsigned start_idx, unsigned end_idx) const
 
VECTORNoperator= (REAL r)
 
VECTORNoperator= (const VECTOR2 &source)
 
VECTORNoperator= (const VECTOR3 &source)
 
VECTORNoperator= (const VECTORN &source)
 
VECTORNoperator= (const SHAREDVECTORN &source)
 
VECTORNoperator= (const CONST_SHAREDVECTORN &source)
 
VECTORNoperator= (const MATRIXN &source)
 
VECTORNoperator= (const SHAREDMATRIXN &source)
 
VECTORNoperator= (const CONST_SHAREDMATRIXN &source)
 
VECTORNoperator/= (REAL scalar)
 
REAL * data ()
 
const REAL * data () const
 
VECTORNresize (unsigned m, unsigned n, bool preserve=false)
 
void free_memory ()
 
void compress ()
 
unsigned rows () const
 
unsigned columns () const
 
unsigned leading_dim () const
 
unsigned inc () const
 
REAL & operator[] (unsigned i)
 Returns the desired component of this vector.
 
REAL operator[] (unsigned i) const
 Returns the desired component of this vector.
 
REAL * data (unsigned i)
 Gets the appropriate data element.
 
const REAL * data (unsigned i) const
 Gets the appropriate data element.
 
COLUMN_ITERATOR segment_iterator_begin (unsigned start, unsigned end)
 
CONST_COLUMN_ITERATOR segment_iterator_begin (unsigned start, unsigned end) const
 
COLUMN_ITERATOR segment_iterator_end (unsigned start, unsigned end)
 
CONST_COLUMN_ITERATOR segment_iterator_end (unsigned start, unsigned end) const
 
CONST_ROW_ITERATOR row_iterator_begin () const
 
CONST_ROW_ITERATOR row_iterator_end () const
 
ROW_ITERATOR row_iterator_begin ()
 
ROW_ITERATOR row_iterator_end ()
 
CONST_COLUMN_ITERATOR column_iterator_begin () const
 
CONST_COLUMN_ITERATOR column_iterator_end () const
 
COLUMN_ITERATOR column_iterator_begin ()
 
COLUMN_ITERATOR column_iterator_end ()
 
COLUMN_ITERATOR begin ()
 Returns the column iterator.
 
CONST_COLUMN_ITERATOR begin () const
 Returns the constant column iterator.
 
COLUMN_ITERATOR end ()
 Returns the column iterator.
 
CONST_COLUMN_ITERATOR end () const
 Returns the constant column iterator.
 
XVECTORN & set_zero ()
 Sets the vector to the zero vector.
 
XVECTORN & set_zero (unsigned m, unsigned n=1)
 Sets the vector to the zero vector.
 
XVECTORN & set_one ()
 Sets the vector to the zero vector.
 
XVECTORN & set_one (unsigned m, unsigned n=1)
 Sets the vector to the zero vector.
 
bool is_finite () const
 Returns true if all components of this vector are not infinite and not NaN, and false otherwise.
 
XVECTORN & negate ()
 Negates the matrix in place.
 
XVECTORN & operator*= (REAL scalar)
 Multiplies this vector in place by a scalar.
 
template<class V >
XVECTORN & set_sub_vec (unsigned start, const V &v)
 Sets a sub-vector of this vector. More...
 
template<class V >
XVECTORN & operator+= (const V &v)
 Adds a vector from this one in place.
 
template<class V >
XVECTORN & operator-= (const V &v)
 Subtracts a vector from this one in place.
 
template<class ForwardIterator , class V >
XVECTORN & set (ForwardIterator idx_begin, ForwardIterator idx_end, const V &v)
 Sets a subvector; other components are unchanged.
 
template<class V >
XVECTORN & set (std::vector< bool > &indices, const V &v)
 Sets a subvector; other components are unchanged.
 
template<class V >
V & get_sub_vec (unsigned start, unsigned end, V &v) const
 Gets a sub-vector from this vector. More...
 
template<class V >
bool operator< (const V &v) const
 Compares two vectors lexographically.
 
template<class V >
bool operator== (const V &v) const
 Compares two vectors. More...
 
template<class V >
REAL dot (const V &v) const
 Computes the dot-product between two vectors.
 
template<class V >
V & select (const std::vector< bool > &indices, V &v) const
 Gets a subvector (not necessarily contiguous)
 
template<class ForwardIterator , class V >
V & select (ForwardIterator idx_begin, ForwardIterator idx_end, V &v) const
 Gets a subvector (not necessarily contiguous)
 

Static Public Member Functions

static VECTORN construct_variable (unsigned N,...)
 
static REAL norm_sq (const VECTORN &v)
 
static REAL norm (const VECTORN &v)
 
static VECTORN one (unsigned N)
 
static VECTORNconcat (const VECTORN &v1, const VECTORN &v2, VECTORN &result)
 
static VECTORN zero (unsigned n)
 
static VECTORNparse (const std::string &s, VECTORN &v)
 
static VECTORN parse (const std::string &s)
 
template<class V1 , class V2 >
static REAL dot (const V1 &v1, const V2 &v2)
 Computes the dot-product between two vectors.
 
static REAL norm_inf (const XVECTORN &v)
 Computes the infinity norm of this vector.
 
static REAL norm1 (const XVECTORN &v)
 Computes the l1-norm of this vector.
 
static VECTORN construct_variable (unsigned N,...)
 
static REAL norm_sq (const VECTORN &v)
 
static REAL norm (const VECTORN &v)
 
static VECTORN one (unsigned N)
 
static VECTORNconcat (const VECTORN &v1, const VECTORN &v2, VECTORN &result)
 
static VECTORN zero (unsigned n)
 
static VECTORNparse (const std::string &s, VECTORN &v)
 
static VECTORN parse (const std::string &s)
 
template<class V1 , class V2 >
static REAL dot (const V1 &v1, const V2 &v2)
 Computes the dot-product between two vectors.
 
static REAL norm_inf (const XVECTORN &v)
 Computes the infinity norm of this vector.
 
static REAL norm1 (const XVECTORN &v)
 Computes the l1-norm of this vector.
 

Protected Attributes

SharedResizable< REAL > _data
 

Detailed Description

A generic N-dimensional floating point vector.

Member Function Documentation

template<class V >
V& Ravelin::VECTORN::get_sub_vec ( unsigned  start,
unsigned  end,
V &  v 
) const
inline

Gets a sub-vector from this vector.

Parameters
start_idxthe starting index (inclusive)
end_idxthe ending index (exclusive)
template<class V >
V& Ravelin::VECTORN::get_sub_vec ( unsigned  start,
unsigned  end,
V &  v 
) const
inline

Gets a sub-vector from this vector.

Parameters
start_idxthe starting index (inclusive)
end_idxthe ending index (exclusive)
template<class V >
bool Ravelin::VECTORN::operator== ( const V &  v) const
inline

Compares two vectors.

Note
this method exists solely for convenience of use with iterators
template<class V >
bool Ravelin::VECTORN::operator== ( const V &  v) const
inline

Compares two vectors.

Note
this method exists solely for convenience of use with iterators
template<class V >
XVECTORN& Ravelin::VECTORN::set_sub_vec ( unsigned  start,
const V &  v 
)
inline

Sets a sub-vector of this vector.

Parameters
start_idxthe starting index (inclusive)
va (end_idx - start_idx + 1)-dimensional vector
template<class V >
XVECTORN& Ravelin::VECTORN::set_sub_vec ( unsigned  start,
const V &  v 
)
inline

Sets a sub-vector of this vector.

Parameters
start_idxthe starting index (inclusive)
va (end_idx - start_idx + 1)-dimensional vector

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