# boost::numeric::ublas::coordinate_vector< T, IB, IA, TA > Class Template Reference

Coordimate array based sparse vector. More...

Inherits vector_container< coordinate_vector< T, IB, IA, TA > >.

List of all members.

## Classes

class | const_iterator
class | iterator

## Public Types

typedef IA::value_type | size_type
typedef IA::difference_type | difference_type
typedef T | value_type
typedef const T & | const_reference
typedef T & | reference
typedef IA | index_array_type
typedef TA | value_array_type
typedef const vector_reference < const self_type > | const_closure_type
typedef vector_reference < self_type > | closure_type
typedef self_type | vector_temporary_type
typedef sparse_tag | storage_category
typedef reverse_iterator_base < const_iterator > | const_reverse_iterator
typedef reverse_iterator_base < iterator > | reverse_iterator

## Public Member Functions

BOOST_UBLAS_INLINE | coordinate_vector (size_type size, size_type non_zeros=0)
BOOST_UBLAS_INLINE | coordinate_vector (const coordinate_vector &v)
template<class AE >
BOOST_UBLAS_INLINE | coordinate_vector (const vector_expression< AE > &ae, size_type non_zeros=0)
BOOST_UBLAS_INLINE size_type | size () const
BOOST_UBLAS_INLINE size_type | nnz_capacity () const
BOOST_UBLAS_INLINE size_type | nnz () const
BOOST_UBLAS_INLINE index_array_type::size_type | filled () const
BOOST_UBLAS_INLINE const index_array_type & | index_data () const
BOOST_UBLAS_INLINE const value_array_type & | value_data () const
BOOST_UBLAS_INLINE void | set_filled (const typename index_array_type::size_type &sorted, const typename index_array_type::size_type &filled)
BOOST_UBLAS_INLINE index_array_type & | index_data ()
BOOST_UBLAS_INLINE value_array_type & | value_data ()
BOOST_UBLAS_INLINE void | resize (size_type size, bool preserve=true)
BOOST_UBLAS_INLINE void | reserve (size_type non_zeros, bool preserve=true)
BOOST_UBLAS_INLINE pointer | find_element (size_type i)
BOOST_UBLAS_INLINE const_pointer | find_element (size_type i) const
BOOST_UBLAS_INLINE const_reference | operator() (size_type i) const
BOOST_UBLAS_INLINE true_reference | ref (size_type i)
BOOST_UBLAS_INLINE reference | operator() (size_type i)
BOOST_UBLAS_INLINE const_reference | operator[] (size_type i) const
BOOST_UBLAS_INLINE reference | operator[] (size_type i)
BOOST_UBLAS_INLINE void | append_element (size_type i, const_reference t)
BOOST_UBLAS_INLINE true_reference | insert_element (size_type i, const_reference t)
BOOST_UBLAS_INLINE void | erase_element (size_type i)
BOOST_UBLAS_INLINE void | clear ()
BOOST_UBLAS_INLINE coordinate_vector & | operator= (const coordinate_vector &v)
template<class C >
BOOST_UBLAS_INLINE coordinate_vector & | operator= (const vector_container< C > &v)
BOOST_UBLAS_INLINE coordinate_vector & | assign_temporary (coordinate_vector &v)
template<class AE >
BOOST_UBLAS_INLINE coordinate_vector & | operator= (const vector_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE coordinate_vector & | assign (const vector_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE coordinate_vector & | operator+= (const vector_expression< AE > &ae)
template<class C >
BOOST_UBLAS_INLINE coordinate_vector & | operator+= (const vector_container< C > &v)
template<class AE >
BOOST_UBLAS_INLINE coordinate_vector & | plus_assign (const vector_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE coordinate_vector & | operator-= (const vector_expression< AE > &ae)
template<class C >
BOOST_UBLAS_INLINE coordinate_vector & | operator-= (const vector_container< C > &v)
template<class AE >
BOOST_UBLAS_INLINE coordinate_vector & | minus_assign (const vector_expression< AE > &ae)
template<class AT >
BOOST_UBLAS_INLINE coordinate_vector & | operator*= (const AT &at)
template<class AT >
BOOST_UBLAS_INLINE coordinate_vector & | operator/= (const AT &at)
BOOST_UBLAS_INLINE void | swap (coordinate_vector &v)
BOOST_UBLAS_INLINE void | sort () const
BOOST_UBLAS_INLINE void | push_back (size_type i, const_reference t)
BOOST_UBLAS_INLINE void | pop_back ()
const_iterator | find (size_type i) const
iterator | find (size_type i)
BOOST_UBLAS_INLINE const_iterator | begin () const
BOOST_UBLAS_INLINE const_iterator | end () const
BOOST_UBLAS_INLINE iterator | begin ()
BOOST_UBLAS_INLINE iterator | end ()
BOOST_UBLAS_INLINE const_reverse_iterator | rbegin () const
BOOST_UBLAS_INLINE const_reverse_iterator | rend () const
BOOST_UBLAS_INLINE reverse_iterator | rbegin ()
BOOST_UBLAS_INLINE reverse_iterator | rend ()
template<class Archive >
void | serialize (Archive &ar, const unsigned int)

## Static Public Member Functions

static BOOST_UBLAS_INLINE size_type | index_base ()

## Friends

class | iterator
class | const_iterator
BOOST_UBLAS_INLINE friend void | swap (coordinate_vector &v1, coordinate_vector &v2)

## Detailed Description

### template<class T, std::size_t IB, class IA, class TA>
class boost::numeric::ublas::coordinate_vector< T, IB, IA, TA >

a sparse vector of values of type `T` of variable size. The non zero values are stored as two seperate arrays: an index array and a value array. The arrays may be out of order with multiple entries for each vector element. If there are multiple values for the same index the sum of these values is the real value. It is way more efficient for inserting values than a `compressed_vector` but less memory efficient. Also linearly parsing a vector can be longer in specific cases than a `compressed_vector`.

For a n-dimensional sorted coordinate vector and the non-zero elements are mapped to consecutive elements of the index and value container, i.e. for elements and of these containers holds .

Supported parameters for the adapted array (indices and values) are `unbounded_array<>` , `bounded_array<>` and `std::vector<>`.

Template Parameters:

  | T | the type of object stored in the vector (like double, float, complex, etc...)
  | IB | the index base of the compressed vector. Default is 0. Other supported value is 1
  | IA | the type of adapted array for indices. Default is `unbounded_array<std::size_t>`
  | TA | the type of adapted array for values. Default is unbounded_array<T>