Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of boost. Click here for the latest Boost documentation.

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 $n$-dimensional compressed vector and $0 \leq i < n$ the non-zero elements $v_i$ are mapped to consecutive elements of the index and value container, i.e. for elements $k = v_{i_1}$ and $k + 1 = v_{i_2}$ of these containers holds $i_1 < i_2$.

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>

Generated on Sun Jul 4 20:31:07 2010 for ublas by  doxygen 1.6.1