#include <vnl_vector.h>
Inheritance diagram for vnl_vector< T >:

The vnl_vector<T> class implements one-dimensional arithmetic vectors to be used with the vnl_matrix<T> class. vnl_vector<T> has size fixed by constructor time or changed by assignment operator. For faster, non-mallocing vectors with size known at compile time, use vnl_vector_fixed* or vnl_T_n (e.g. vnl_double_3).
NOTE: Vectors are indexed from zero! Thus valid elements are [0,size()-1].
Definition at line 73 of file vnl_vector.h.
Public Types | |
| typedef T | element_type |
| Type defs for iterators. | |
| typedef T * | iterator |
| Type defs for iterators. | |
| typedef T const * | const_iterator |
| Const iterator type. | |
| typedef vnl_c_vector< T >::abs_t | abs_t |
Public Member Functions | |
| vnl_vector () | |
| Creates an empty vector. O(1). | |
| vnl_vector (unsigned len) | |
| Creates vector containing n elements. | |
| vnl_vector (unsigned len, T const &v0) | |
| Creates vector of len elements, all set to v0. | |
| vnl_vector (unsigned len, int n, T const values[]) | |
| Creates a vector of specified length and initialize first n elements with values. O(n). | |
| vnl_vector (T const *data_block, unsigned int n) | |
| Create n element vector and copy data from data_block. | |
| vnl_vector (vnl_vector< T > const &) | |
| Copy constructor. | |
| vnl_vector (vnl_vector< T > const &, vnl_vector< T > const &, vnl_tag_add) | |
| vnl_vector (vnl_vector< T > const &, vnl_vector< T > const &, vnl_tag_sub) | |
| vnl_vector (vnl_vector< T > const &, T, vnl_tag_mul) | |
| vnl_vector (vnl_vector< T > const &, T, vnl_tag_div) | |
| vnl_vector (vnl_vector< T > const &, T, vnl_tag_add) | |
| vnl_vector (vnl_vector< T > const &, T, vnl_tag_sub) | |
| vnl_vector (vnl_matrix< T > const &, vnl_vector< T > const &, vnl_tag_mul) | |
| vnl_vector (vnl_vector< T > const &, vnl_matrix< T > const &, vnl_tag_mul) | |
| vnl_vector (vnl_vector< T > &that, vnl_tag_grab) | |
| ~vnl_vector () | |
| Destructor. | |
| unsigned | size () const |
| Return the length, number of elements, dimension of this vector. | |
| void | put (unsigned int i, T const &) |
| Put value at given position in vector. | |
| T | get (unsigned int i) const |
| Get value at element i. | |
| void | fill (T const &v) |
| Set all values to v. | |
| void | copy_in (T const *ptr) |
| Sets elements to ptr[i]. | |
| void | copy_out (T *) const |
| Copy elements to ptr[i]. | |
| void | set (T const *ptr) |
| Sets elements to ptr[i]. | |
| T & | operator() (unsigned int i) |
| Return reference to the element at specified index. | |
| T const & | operator() (unsigned int i) const |
| Return reference to the element at specified index. No range checking. | |
| T & | operator[] (unsigned int i) |
| Return reference to the element at specified index. No range checking. | |
| T const & | operator[] (unsigned int i) const |
| Return reference to the element at specified index. No range checking. | |
| vnl_vector< T > & | operator= (T const &v) |
| Set all elements to value v. | |
| vnl_vector< T > & | operator= (vnl_vector< T > const &rhs) |
| Copy operator. | |
| vnl_vector< T > & | operator+= (T) |
| Add scalar value to all elements. | |
| vnl_vector< T > & | operator-= (T value) |
| Subtract scalar value from all elements. | |
| vnl_vector< T > & | operator *= (T) |
| Multiply all elements by scalar. | |
| vnl_vector< T > & | operator/= (T) |
| Divide all elements by scalar. | |
| vnl_vector< T > & | operator+= (vnl_vector< T > const &rhs) |
| Add rhs to this and return *this. | |
| vnl_vector< T > & | operator-= (vnl_vector< T > const &rhs) |
| Subtract rhs from this and return *this. | |
| vnl_vector< T > & | pre_multiply (vnl_matrix< T > const &M) |
| *this = M*(*this) where M is a suitable matrix. | |
| vnl_vector< T > & | post_multiply (vnl_matrix< T > const &M) |
| *this = (*this)*M where M is a suitable matrix. | |
| vnl_vector< T > & | operator *= (vnl_matrix< T > const &m) |
| *this = (*this)*M where M is a suitable matrix. | |
| vnl_vector< T > | operator+ () const |
| Unary plus operator. | |
| vnl_vector< T > | operator- () const |
| Unary minus operator. | |
| vnl_vector< T > | operator+ (T v) const |
| vnl_vector< T > | operator- (T v) const |
| vnl_vector< T > | operator * (T v) const |
| vnl_vector< T > | operator/ (T v) const |
| vnl_vector< T > | operator+ (vnl_vector< T > const &v) const |
| vnl_vector< T > | operator- (vnl_vector< T > const &v) const |
| vnl_vector< T > | operator * (vnl_matrix< T > const &M) const |
| T const * | data_block () const |
| Access the contiguous block storing the elements in the vector. O(1). | |
| T * | data_block () |
| Access the contiguous block storing the elements in the vector. O(1). | |
| iterator | begin () |
| Iterator pointing to start of data. | |
| iterator | end () |
| Iterator pointing to element beyond end of data. | |
| const_iterator | begin () const |
| Iterator pointing to start of data. | |
| const_iterator | end () const |
| Iterator pointing to element beyond end of data. | |
| vnl_vector< T > const & | as_ref () const |
| Return a reference to this. | |
| vnl_vector< T > & | as_ref () |
| Return a reference to this. | |
| vnl_vector< T > | apply (T(*f)(T)) const |
| Applies function to elements. | |
| vnl_vector< T > | apply (T(*f)(T const &)) const |
| Applies function to elements. | |
| vnl_vector< T > | extract (unsigned int len, unsigned int start=0) const |
| Returns a subvector specified by the start index and length. O(n). | |
| vnl_vector< T > & | update (vnl_vector< T > const &, unsigned int start=0) |
| Replaces elements with index beginning at start, by values of v. O(n). | |
| abs_t | squared_magnitude () const |
| Return sum of squares of elements. | |
| abs_t | magnitude () const |
| Return magnitude (length) of vector. | |
| abs_t | one_norm () const |
| Return sum of absolute values of the elements. | |
| abs_t | two_norm () const |
| Return sqrt of sum of squares of values of elements. | |
| abs_t | inf_norm () const |
| Return largest absolute element value. | |
| vnl_vector< T > & | normalize () |
| Normalise by dividing through by the magnitude. | |
| abs_t | rms () const |
| Root Mean Squares of values. | |
| T | min_value () const |
| Smallest value. | |
| T | max_value () const |
| Largest value. | |
| T | mean () const |
| Mean of values in vector. | |
| T | sum () const |
| Sum of values in a vector. | |
| void | flip () |
| Reverse the order of the elements. | |
| void | swap (vnl_vector< T > &that) |
| Set this to that and that to this. | |
| void | assert_size (unsigned sz) const |
| Check that size()==sz if not, abort();. | |
| void | assert_finite () const |
| Check that this is finite if not, abort();. | |
| bool | is_finite () const |
| Return true if its finite. | |
| bool | is_zero () const |
| Return true iff all the entries are zero. | |
| bool | empty () const |
| Return true iff the size is zero. | |
| bool | operator_eq (vnl_vector< T > const &v) const |
| Return true if *this == v. | |
| bool | operator== (vnl_vector< T > const &that) const |
| Equality test. | |
| bool | operator!= (vnl_vector< T > const &that) const |
| Inequality test. | |
| bool | set_size (unsigned n) |
| Resize to n elements. | |
| void | clear () |
| Make the vector as if it had been default-constructed. | |
| bool | read_ascii (vcl_istream &s) |
| Read from text stream. | |
Static Public Member Functions | |
| static vnl_vector< T > | read (vcl_istream &s) |
| Read from text stream. | |
Protected Member Functions | |
| void | assert_size_internal (unsigned sz) const |
| void | assert_finite_internal () const |
| void | destroy () |
| Frees up the array inside vector. O(1). | |
Static Protected Member Functions | |
| static void | inline_function_tickler () |
Protected Attributes | |
| unsigned | num_elmts |
| T * | data |
Friends | |
| class | vnl_matrix< T > |
Related Functions | |
| (Note that these are not member functions.) | |
| vnl_vector< vcl_complex< T > > | vnl_complexify (vnl_vector< T > const &R) |
| Return complexified version of real vector R. | |
| vnl_vector< vcl_complex< T > > | vnl_complexify (vnl_vector< T > const &R, vnl_vector< T > const &I) |
| Return complex vector R+j*I from two real vectors R and I. | |
| void | vnl_copy (S const *src, T *dst, unsigned n) |
| Easy conversion between vectors and matrices templated over different types. | |
| void | vnl_copy (S const &, T &) |
| Easy conversion between vectors and matrices templated over different types. | |
| T | vnl_cross_2d (const vnl_vector< T > &v1, const vnl_vector< T > &v2) |
| Compute the 2-D cross product. | |
| vnl_vector< T > | vnl_cross_3d (const vnl_vector< T > &v1, const vnl_vector< T > &v2) |
| Compute the 3-D cross product. | |
| vnl_vector< T > | operator * (vnl_diag_matrix< T > const &D, vnl_vector< T > const &A) |
| Multiply a vnl_diag_matrix by a vnl_vector. n flops. | |
| vnl_vector< T > | operator * (vnl_vector< T > const &A, vnl_diag_matrix< T > const &D) |
| Multiply a vnl_vector by a vnl_diag_matrix. n flops. | |
| vnl_vector< T > | vnl_imag (vnl_vector< vcl_complex< T > > const &C) |
| Vector of imaginary parts of vnl_vector<vcl_complex<T> >. | |
| bool | operator< (vnl_vector< T > const &lhs, vnl_vector< T > const &rhs) |
| Define a complete ordering on vnl_vector. | |
| vnl_vector< T > | vnl_real (vnl_vector< vcl_complex< T > > const &C) |
| Vector of real parts of vnl_vector<vcl_complex<T> >. | |
| vnl_vector< T > | operator+ (T s, vnl_vector< T > const &v) |
| add scalar and vector. O(n). | |
| vnl_vector< T > | operator- (T s, vnl_vector< T > const &v) |
| subtract vector from scalar. O(n). | |
| vnl_vector< T > | operator * (T s, vnl_vector< T > const &v) |
| multiply scalar and vector. O(n). | |
| void | swap (vnl_vector< T > &a, vnl_vector< T > &b) |
| Interchange the two vectors. | |
| T | vnl_vector_ssd (vnl_vector< T > const &v1, vnl_vector< T > const &v2) |
| Euclidean Distance between two vectors. | |
| export vcl_ostream & | operator<< (vcl_ostream &, vnl_vector< T > const &) |
| Write vector to a vcl_ostream. | |
| export vcl_istream & | operator>> (vcl_istream &, vnl_vector< T > &) |
| Read vector from a vcl_istream. | |
| typedef T vnl_vector< T >::element_type |
| typedef T* vnl_vector< T >::iterator |
| typedef T const* vnl_vector< T >::const_iterator |
| typedef vnl_c_vector<T>::abs_t vnl_vector< T >::abs_t |
Definition at line 288 of file vnl_vector.h.
| vnl_vector< T >::vnl_vector | ( | ) | [inline] |
| vnl_vector< T >::vnl_vector | ( | unsigned | len | ) | [explicit] |
Creates vector containing n elements.
Elements are not initialized.
Definition at line 80 of file vnl_vector.txx.
| vnl_vector< T >::vnl_vector | ( | unsigned | len, | |
| T const & | v0 | |||
| ) |
| vnl_vector< T >::vnl_vector | ( | unsigned | len, | |
| int | n, | |||
| T const | values[] | |||
| ) |
Creates a vector of specified length and initialize first n elements with values. O(n).
Definition at line 101 of file vnl_vector.txx.
| vnl_vector< T >::vnl_vector | ( | T const * | data_block, | |
| unsigned int | n | |||
| ) |
Create n element vector and copy data from data_block.
| vnl_vector< T >::vnl_vector | ( | vnl_vector< T > const & | ) |
| vnl_vector< T >::vnl_vector | ( | vnl_vector< T > const & | , | |
| vnl_vector< T > const & | , | |||
| vnl_tag_add | ||||
| ) |
Definition at line 176 of file vnl_vector.txx.
| vnl_vector< T >::vnl_vector | ( | vnl_vector< T > const & | , | |
| vnl_vector< T > const & | , | |||
| vnl_tag_sub | ||||
| ) |
Definition at line 189 of file vnl_vector.txx.
| vnl_vector< T >::vnl_vector | ( | vnl_vector< T > const & | , | |
| T | , | |||
| vnl_tag_mul | ||||
| ) |
Definition at line 202 of file vnl_vector.txx.
| vnl_vector< T >::vnl_vector | ( | vnl_vector< T > const & | , | |
| T | , | |||
| vnl_tag_div | ||||
| ) |
Definition at line 211 of file vnl_vector.txx.
| vnl_vector< T >::vnl_vector | ( | vnl_vector< T > const & | , | |
| T | , | |||
| vnl_tag_add | ||||
| ) |
Definition at line 220 of file vnl_vector.txx.
| vnl_vector< T >::vnl_vector | ( | vnl_vector< T > const & | , | |
| T | , | |||
| vnl_tag_sub | ||||
| ) |
Definition at line 229 of file vnl_vector.txx.
| vnl_vector< T >::vnl_vector | ( | vnl_matrix< T > const & | , | |
| vnl_vector< T > const & | , | |||
| vnl_tag_mul | ||||
| ) |
Definition at line 238 of file vnl_vector.txx.
| vnl_vector< T >::vnl_vector | ( | vnl_vector< T > const & | , | |
| vnl_matrix< T > const & | , | |||
| vnl_tag_mul | ||||
| ) |
Definition at line 251 of file vnl_vector.txx.
| vnl_vector< T >::vnl_vector | ( | vnl_vector< T > & | that, | |
| vnl_tag_grab | ||||
| ) | [inline] |
Definition at line 129 of file vnl_vector.h.
| vnl_vector< T >::~vnl_vector | ( | ) |
| unsigned vnl_vector< T >::size | ( | ) | const [inline] |
Return the length, number of elements, dimension of this vector.
Definition at line 139 of file vnl_vector.h.
| void vnl_vector< T >::put | ( | unsigned int | index, | |
| T const & | value | |||
| ) | [inline] |
Put value at given position in vector.
Range check is performed.
Definition at line 470 of file vnl_vector.h.
| T vnl_vector< T >::get | ( | unsigned int | index | ) | const [inline] |
| void vnl_vector< T >::fill | ( | T const & | v | ) |
| void vnl_vector< T >::copy_in | ( | T const * | ptr | ) |
Sets elements to ptr[i].
Note: ptr[i] must be valid for i=0..size()-1
Definition at line 363 of file vnl_vector.txx.
| void vnl_vector< T >::copy_out | ( | T * | ) | const |
Copy elements to ptr[i].
Note: ptr[i] must be valid for i=0..size()-1
Definition at line 372 of file vnl_vector.txx.
| void vnl_vector< T >::set | ( | T const * | ptr | ) | [inline] |
Sets elements to ptr[i].
Note: ptr[i] must be valid for i=0..size()-1
Definition at line 161 of file vnl_vector.h.
| T& vnl_vector< T >::operator() | ( | unsigned int | i | ) | [inline] |
Return reference to the element at specified index.
There are assert style boundary checks - define NDEBUG to turn them off.
Definition at line 165 of file vnl_vector.h.
| T const& vnl_vector< T >::operator() | ( | unsigned int | i | ) | const [inline] |
Return reference to the element at specified index. No range checking.
There are assert style boundary checks - define NDEBUG to turn them off.
Definition at line 174 of file vnl_vector.h.
| T& vnl_vector< T >::operator[] | ( | unsigned int | i | ) | [inline] |
Return reference to the element at specified index. No range checking.
Definition at line 183 of file vnl_vector.h.
| T const& vnl_vector< T >::operator[] | ( | unsigned int | i | ) | const [inline] |
Return reference to the element at specified index. No range checking.
Definition at line 185 of file vnl_vector.h.
| vnl_vector<T>& vnl_vector< T >::operator= | ( | T const & | v | ) | [inline] |
| vnl_vector< T > & vnl_vector< T >::operator= | ( | vnl_vector< T > const & | rhs | ) |
Copy operator.
Changes the dimension of lhs vector if necessary.
Definition at line 382 of file vnl_vector.txx.
| vnl_vector< T > & vnl_vector< T >::operator+= | ( | T | ) |
| vnl_vector<T>& vnl_vector< T >::operator-= | ( | T | value | ) | [inline] |
| vnl_vector< T > & vnl_vector< T >::operator *= | ( | T | ) |
| vnl_vector< T > & vnl_vector< T >::operator/= | ( | T | ) |
| vnl_vector< T > & vnl_vector< T >::operator+= | ( | vnl_vector< T > const & | rhs | ) |
| vnl_vector< T > & vnl_vector< T >::operator-= | ( | vnl_vector< T > const & | rhs | ) |
| vnl_vector< T > & vnl_vector< T >::pre_multiply | ( | vnl_matrix< T > const & | M | ) |
*this = M*(*this) where M is a suitable matrix.
this is treated as a column vector
Definition at line 463 of file vnl_vector.txx.
| vnl_vector< T > & vnl_vector< T >::post_multiply | ( | vnl_matrix< T > const & | M | ) |
*this = (*this)*M where M is a suitable matrix.
this is treated as a row vector
Definition at line 486 of file vnl_vector.txx.
| vnl_vector<T>& vnl_vector< T >::operator *= | ( | vnl_matrix< T > const & | m | ) | [inline] |
*this = (*this)*M where M is a suitable matrix.
this is treated as a row vector
Definition at line 221 of file vnl_vector.h.
| vnl_vector<T> vnl_vector< T >::operator+ | ( | ) | const [inline] |
| vnl_vector< T > vnl_vector< T >::operator- | ( | ) | const |
| vnl_vector<T> vnl_vector< T >::operator+ | ( | T | v | ) | const [inline] |
Definition at line 231 of file vnl_vector.h.
| vnl_vector<T> vnl_vector< T >::operator- | ( | T | v | ) | const [inline] |
Definition at line 232 of file vnl_vector.h.
| vnl_vector<T> vnl_vector< T >::operator * | ( | T | v | ) | const [inline] |
Definition at line 233 of file vnl_vector.h.
| vnl_vector<T> vnl_vector< T >::operator/ | ( | T | v | ) | const [inline] |
Definition at line 234 of file vnl_vector.h.
| vnl_vector<T> vnl_vector< T >::operator+ | ( | vnl_vector< T > const & | v | ) | const [inline] |
Definition at line 236 of file vnl_vector.h.
| vnl_vector<T> vnl_vector< T >::operator- | ( | vnl_vector< T > const & | v | ) | const [inline] |
Definition at line 237 of file vnl_vector.h.
| vnl_vector<T> vnl_vector< T >::operator * | ( | vnl_matrix< T > const & | M | ) | const [inline] |
Definition at line 238 of file vnl_vector.h.
| T const* vnl_vector< T >::data_block | ( | ) | const [inline] |
Access the contiguous block storing the elements in the vector. O(1).
data_block()[0] is the first element of the vector
Definition at line 244 of file vnl_vector.h.
| T* vnl_vector< T >::data_block | ( | ) | [inline] |
Access the contiguous block storing the elements in the vector. O(1).
data_block()[0] is the first element of the vector
Definition at line 248 of file vnl_vector.h.
| iterator vnl_vector< T >::begin | ( | ) | [inline] |
| iterator vnl_vector< T >::end | ( | ) | [inline] |
| const_iterator vnl_vector< T >::begin | ( | ) | const [inline] |
| const_iterator vnl_vector< T >::end | ( | ) | const [inline] |
| vnl_vector<T> const& vnl_vector< T >::as_ref | ( | ) | const [inline] |
Return a reference to this.
Useful in code which would prefer not to know if its argument is a vector, vector_ref or a vector_fixed. Note that it doesn't return a vector_ref, so it's only useful in templates or macros.
Definition at line 271 of file vnl_vector.h.
| vnl_vector<T>& vnl_vector< T >::as_ref | ( | ) | [inline] |
| vnl_vector< T > vnl_vector< T >::apply | ( | T(*)(T) | f | ) | const |
| vnl_vector< T > vnl_vector< T >::apply | ( | T(*)(T const &) | f | ) | const |
| vnl_vector<T> vnl_vector< T >::extract | ( | unsigned int | len, | |
| unsigned int | start = 0 | |||
| ) | const |
Returns a subvector specified by the start index and length. O(n).
| vnl_vector<T>& vnl_vector< T >::update | ( | vnl_vector< T > const & | , | |
| unsigned int | start = 0 | |||
| ) |
Replaces elements with index beginning at start, by values of v. O(n).
| abs_t vnl_vector< T >::squared_magnitude | ( | ) | const [inline] |
| abs_t vnl_vector< T >::magnitude | ( | ) | const [inline] |
| abs_t vnl_vector< T >::one_norm | ( | ) | const [inline] |
| abs_t vnl_vector< T >::two_norm | ( | ) | const [inline] |
| abs_t vnl_vector< T >::inf_norm | ( | ) | const [inline] |
| vnl_vector<T>& vnl_vector< T >::normalize | ( | ) | [inline] |
| abs_t vnl_vector< T >::rms | ( | ) | const [inline] |
| T vnl_vector< T >::min_value | ( | ) | const [inline] |
| T vnl_vector< T >::max_value | ( | ) | const [inline] |