shark::blas::compressed_vector< T, I > Class Template Reference

Compressed array based sparse vector. More...

#include <shark/LinAlg/BLAS/fwd.hpp>

+ Inheritance diagram for shark::blas::compressed_vector< T, I >:

Classes

class  reference
 

Public Types

typedef T * pointer
 
typedef const T * const_pointer
 
typedef const T & const_reference
 
typedef index_type const * const_index_pointer
 
typedef index_type index_pointer
 
typedef sparse_tag storage_category
 
typedef elementwise_tag evaluation_category
 
typedef compressed_storage_iterator< value_type const, index_type const > const_iterator
 
typedef compressed_storage_iterator< value_type, index_type const > iterator
 

Public Member Functions

 compressed_vector ()
 
 compressed_vector (size_type size, value_type value=value_type(), size_type non_zeros=0)
 
template<class AE >
 compressed_vector (vector_expression< AE > const &ae, size_type non_zeros=0)
 
size_type size () const
 
size_type nnz_capacity () const
 
size_type nnz () const
 
void set_filled (size_type filled)
 
index_type const * indices () const
 
index_type * indices ()
 
value_type const * values () const
 
value_type * values ()
 
void resize (size_type size)
 
void reserve (size_type non_zeros)
 
const_reference operator() (size_type i) const
 
reference operator() (size_type i)
 
const_reference operator[] (size_type i) const
 
reference operator[] (size_type i)
 
void clear ()
 
compressed_vectoroperator= (compressed_vector const &v)
 
template<class C >
compressed_vectoroperator= (vector_container< C > const &v)
 
template<class AE >
compressed_vectoroperator= (vector_expression< AE > const &ae)
 
void swap (compressed_vector &v)
 
const_iterator begin () const
 
const_iterator end () const
 
iterator begin ()
 
iterator end ()
 
iterator set_element (iterator pos, size_type index, value_type value)
 
iterator clear_range (iterator start, iterator end)
 
iterator clear_element (iterator pos)
 
template<class Archive >
void serialize (Archive &ar, const unsigned int)
 
- Public Member Functions inherited from shark::blas::vector_container< compressed_vector< T, I > >
const container_type & operator() () const
 
container_type & operator() ()
 
- Public Member Functions inherited from shark::blas::vector_expression< E >
const expression_type & operator() () const
 
expression_type & operator() ()
 

Friends

void swap (compressed_vector &v1, compressed_vector &v2)
 

Detailed Description

template<class T, class I>
class shark::blas::compressed_vector< T, I >

Compressed array based sparse vector.

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
Tthe type of object stored in the vector (like double, float, complex, etc...)
Ithe indices stored in the vector

Definition at line 68 of file fwd.hpp.

Member Typedef Documentation

§ const_index_pointer

template<class T , class I >
typedef index_type const* shark::blas::compressed_vector< T, I >::const_index_pointer

Definition at line 72 of file vector_sparse.hpp.

§ const_iterator

template<class T , class I >
typedef compressed_storage_iterator<value_type const, index_type const> shark::blas::compressed_vector< T, I >::const_iterator

Definition at line 263 of file vector_sparse.hpp.

§ const_pointer

template<class T , class I >
typedef const T* shark::blas::compressed_vector< T, I >::const_pointer

Definition at line 68 of file vector_sparse.hpp.

§ const_reference

template<class T , class I >
typedef const T& shark::blas::compressed_vector< T, I >::const_reference

Definition at line 69 of file vector_sparse.hpp.

§ evaluation_category

template<class T , class I >
typedef elementwise_tag shark::blas::compressed_vector< T, I >::evaluation_category

Definition at line 142 of file vector_sparse.hpp.

§ index_pointer

template<class T , class I >
typedef index_type shark::blas::compressed_vector< T, I >::index_pointer

Definition at line 73 of file vector_sparse.hpp.

§ iterator

template<class T , class I >
typedef compressed_storage_iterator<value_type, index_type const> shark::blas::compressed_vector< T, I >::iterator

Definition at line 264 of file vector_sparse.hpp.

§ pointer

template<class T , class I >
typedef T* shark::blas::compressed_vector< T, I >::pointer

Definition at line 67 of file vector_sparse.hpp.

§ storage_category

template<class T , class I >
typedef sparse_tag shark::blas::compressed_vector< T, I >::storage_category

Definition at line 141 of file vector_sparse.hpp.

Constructor & Destructor Documentation

§ compressed_vector() [1/3]

template<class T , class I >
shark::blas::compressed_vector< T, I >::compressed_vector ( )
inline

Definition at line 145 of file vector_sparse.hpp.

§ compressed_vector() [2/3]

template<class T , class I >
shark::blas::compressed_vector< T, I >::compressed_vector ( size_type  size,
value_type  value = value_type(),
size_type  non_zeros = 0 
)
inlineexplicit

Definition at line 146 of file vector_sparse.hpp.

§ compressed_vector() [3/3]

template<class T , class I >
template<class AE >
shark::blas::compressed_vector< T, I >::compressed_vector ( vector_expression< AE > const &  ae,
size_type  non_zeros = 0 
)
inline

Definition at line 149 of file vector_sparse.hpp.

References shark::blas::assign().

Member Function Documentation

§ begin() [1/2]

§ begin() [2/2]

template<class T , class I >
iterator shark::blas::compressed_vector< T, I >::begin ( )
inline

§ clear()

template<class T , class I >
void shark::blas::compressed_vector< T, I >::clear ( )
inline

Definition at line 225 of file vector_sparse.hpp.

§ clear_element()

§ clear_range()

§ end() [1/2]

§ end() [2/2]

§ indices() [1/2]

§ indices() [2/2]

template<class T , class I >
index_type* shark::blas::compressed_vector< T, I >::indices ( )
inline

§ nnz()

§ nnz_capacity()

§ operator()() [1/2]

template<class T , class I >
const_reference shark::blas::compressed_vector< T, I >::operator() ( size_type  i) const
inline

Definition at line 205 of file vector_sparse.hpp.

References shark::blas::compressed_vector< T, I >::nnz(), and SIZE_CHECK.

§ operator()() [2/2]

template<class T , class I >
reference shark::blas::compressed_vector< T, I >::operator() ( size_type  i)
inline

§ operator=() [1/3]

template<class T , class I >
compressed_vector& shark::blas::compressed_vector< T, I >::operator= ( compressed_vector< T, I > const &  v)
inline

Definition at line 230 of file vector_sparse.hpp.

§ operator=() [2/3]

template<class T , class I >
template<class C >
compressed_vector& shark::blas::compressed_vector< T, I >::operator= ( vector_container< C > const &  v)
inline

§ operator=() [3/3]

template<class T , class I >
template<class AE >
compressed_vector& shark::blas::compressed_vector< T, I >::operator= ( vector_expression< AE > const &  ae)
inline

§ operator[]() [1/2]

template<class T , class I >
const_reference shark::blas::compressed_vector< T, I >::operator[] ( size_type  i) const
inline

Definition at line 217 of file vector_sparse.hpp.

§ operator[]() [2/2]

template<class T , class I >
reference shark::blas::compressed_vector< T, I >::operator[] ( size_type  i)
inline

Definition at line 220 of file vector_sparse.hpp.

§ reserve()

template<class T , class I >
void shark::blas::compressed_vector< T, I >::reserve ( size_type  non_zeros)
inline

§ resize()

template<class T , class I >
void shark::blas::compressed_vector< T, I >::resize ( size_type  size)
inline

§ serialize()

template<class T , class I >
template<class Archive >
void shark::blas::compressed_vector< T, I >::serialize ( Archive &  ar,
const unsigned  int 
)
inline

§ set_element()

§ set_filled()

template<class T , class I >
void shark::blas::compressed_vector< T, I >::set_filled ( size_type  filled)
inline

§ size()

§ swap()

template<class T , class I >
void shark::blas::compressed_vector< T, I >::swap ( compressed_vector< T, I > &  v)
inline

Definition at line 251 of file vector_sparse.hpp.

References shark::swap().

Referenced by shark::blas::compressed_vector< T, I >::operator=().

§ values() [1/2]

§ values() [2/2]

template<class T , class I >
value_type* shark::blas::compressed_vector< T, I >::values ( )
inline

Friends And Related Function Documentation

§ swap

template<class T , class I >
void swap ( compressed_vector< T, I > &  v1,
compressed_vector< T, I > &  v2 
)
friend

Definition at line 258 of file vector_sparse.hpp.


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