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

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

Compressed array based sparse vector. More...

Inherits vector_container< compressed_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 | compressed_vector (size_type size, size_type non_zeros=0)
BOOST_UBLAS_INLINE | compressed_vector (const compressed_vector &v)
template<class AE >
BOOST_UBLAS_INLINE | compressed_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 &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 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 compressed_vector & | operator= (const compressed_vector &v)
template<class C >
BOOST_UBLAS_INLINE compressed_vector & | operator= (const vector_container< C > &v)
BOOST_UBLAS_INLINE compressed_vector & | assign_temporary (compressed_vector &v)
template<class AE >
BOOST_UBLAS_INLINE compressed_vector & | operator= (const vector_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE compressed_vector & | assign (const vector_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE compressed_vector & | operator+= (const vector_expression< AE > &ae)
template<class C >
BOOST_UBLAS_INLINE compressed_vector & | operator+= (const vector_container< C > &v)
template<class AE >
BOOST_UBLAS_INLINE compressed_vector & | plus_assign (const vector_expression< AE > &ae)
template<class AE >
BOOST_UBLAS_INLINE compressed_vector & | operator-= (const vector_expression< AE > &ae)
template<class C >
BOOST_UBLAS_INLINE compressed_vector & | operator-= (const vector_container< C > &v)
template<class AE >
BOOST_UBLAS_INLINE compressed_vector & | minus_assign (const vector_expression< AE > &ae)
template<class AT >
BOOST_UBLAS_INLINE compressed_vector & | operator*= (const AT &at)
template<class AT >
BOOST_UBLAS_INLINE compressed_vector & | operator/= (const AT &at)
BOOST_UBLAS_INLINE void | swap (compressed_vector &v)
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 (compressed_vector &v1, compressed_vector &v2)

## Detailed Description

### template<class T, std::size_t IB, class IA, class TA>
class boost::numeric::ublas::compressed_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 index array is always sorted and there is at most one entry for each index. Inserting an element can be time consuming. If the vector contains a few zero entries, then it is better to have a normal vector. If the vector has a very high dimension with a few non-zero values, then this vector is very memory efficient (at the cost of a few more computations).

For a -dimensional compressed 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>