Ravelin
Public Member Functions | Static Public Member Functions | Protected Attributes | Friends | List of all members
SHAREDVECTORN Class Reference

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

#include <SharedVectorN.h>

Public Member Functions

 SHAREDVECTORN ()
 Default constructor - constructs an empty vector.
 
 SHAREDVECTORN (const SHAREDVECTORN &source)
 
 SHAREDVECTORN (unsigned len, unsigned inc, unsigned start, SharedResizable< REAL > data)
 Constructs a shared vector using the given arguments.
 
void reset_from (const SHAREDVECTORN &source)
 Constructs a shared vector from another shared vector.
 
SHAREDVECTORNnormalize ()
 
unsigned size () const
 
REAL norm_inf () const
 
REAL norm1 () const
 
REAL norm () const
 
REAL norm_sq () const
 
SHAREDVECTORN segment (unsigned start, unsigned end)
 Gets a shared subvector of this subvector.
 
CONST_SHAREDVECTORN segment (unsigned start, unsigned end) const
 Gets a shared subvector of this subvector.
 
SHAREDVECTORNresize (unsigned N, bool preserve=false)
 Does nothing.
 
SHAREDVECTORNoperator= (const ORIGIN2 &source)
 Copies another vector.
 
SHAREDVECTORNoperator= (const ORIGIN3 &source)
 Copies another vector.
 
SHAREDVECTORNoperator= (const VECTOR3 &source)
 Copies another vector.
 
SHAREDVECTORNoperator= (const SHAREDVECTORN &source)
 Copies another vector.
 
SHAREDVECTORNoperator= (const CONST_SHAREDVECTORN &source)
 Copies another vector.
 
SHAREDVECTORNoperator= (const VECTORN &source)
 Copies another vector.
 
SHAREDVECTORNoperator/= (REAL scalar)
 
REAL * data ()
 
const REAL * data () const
 
SHAREDVECTORNresize (unsigned m, unsigned n, bool preserve=false)
 
void reset ()
 Resets the shared structure.
 
unsigned rows () const
 
unsigned columns () const
 
unsigned leading_dim () const
 
unsigned inc () const
 
REAL & operator[] (unsigned i)
 Returns the desired component of this vector.
 
const 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 REAL norm (const SHAREDVECTORN &v)
 
static REAL norm_sq (const SHAREDVECTORN &v)
 
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
 
unsigned _start
 
unsigned _inc
 
unsigned _len
 

Friends

class VECTORN
 
class MATRIXN
 
class MATRIX2
 
class MATRIX3
 
class CONST_SHAREDVECTORN
 
class SHAREDMATRIXN
 
class CONST_SHAREDMATRIXN
 

Detailed Description

A generic N-dimensional floating point vector.

Member Function Documentation

template<class V >
V& SHAREDVECTORN::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)

Referenced by RC_ARTICULATED_BODY::add_generalized_force(), RC_ARTICULATED_BODY::set_generalized_acceleration(), and RC_ARTICULATED_BODY::set_generalized_forces().

template<class V >
bool SHAREDVECTORN::operator== ( const V &  v) const
inline

Compares two vectors.

Note
this method exists solely for convenience of use with iterators
template<class V >
XVECTORN& SHAREDVECTORN::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

Referenced by RC_ARTICULATED_BODY::get_generalized_velocity_generic().


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