Compressed array based sparse vector. More...
#include <shark/LinAlg/BLAS/fwd.hpp>
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_vector & | operator= (compressed_vector const &v) |
template<class C > | |
compressed_vector & | operator= (vector_container< C > const &v) |
template<class AE > | |
compressed_vector & | operator= (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) |
![]() | |
const container_type & | operator() () const |
container_type & | operator() () |
![]() | |
const expression_type & | operator() () const |
expression_type & | operator() () |
Friends | |
void | swap (compressed_vector &v1, compressed_vector &v2) |
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<>
.
T | the type of object stored in the vector (like double, float, complex, etc...) |
I | the indices stored in the vector |
typedef index_type const* shark::blas::compressed_vector< T, I >::const_index_pointer |
Definition at line 72 of file vector_sparse.hpp.
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.
typedef const T* shark::blas::compressed_vector< T, I >::const_pointer |
Definition at line 68 of file vector_sparse.hpp.
typedef const T& shark::blas::compressed_vector< T, I >::const_reference |
Definition at line 69 of file vector_sparse.hpp.
typedef elementwise_tag shark::blas::compressed_vector< T, I >::evaluation_category |
Definition at line 142 of file vector_sparse.hpp.
typedef index_type shark::blas::compressed_vector< T, I >::index_pointer |
Definition at line 73 of file vector_sparse.hpp.
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.
typedef T* shark::blas::compressed_vector< T, I >::pointer |
Definition at line 67 of file vector_sparse.hpp.
typedef sparse_tag shark::blas::compressed_vector< T, I >::storage_category |
Definition at line 141 of file vector_sparse.hpp.
|
inline |
Definition at line 145 of file vector_sparse.hpp.
|
inlineexplicit |
Definition at line 146 of file vector_sparse.hpp.
|
inline |
Definition at line 149 of file vector_sparse.hpp.
References shark::blas::assign().
|
inline |
Definition at line 266 of file vector_sparse.hpp.
References shark::blas::compressed_vector< T, I >::indices(), and shark::blas::compressed_vector< T, I >::values().
Referenced by shark::blas::compressed_vector< T, I >::clear_element(), shark::blas::compressed_vector< T, I >::clear_range(), shark::blas::compressed_vector< T, I >::serialize(), and shark::blas::compressed_vector< T, I >::set_element().
|
inline |
Definition at line 274 of file vector_sparse.hpp.
References shark::blas::compressed_vector< T, I >::indices(), and shark::blas::compressed_vector< T, I >::values().
|
inline |
Definition at line 225 of file vector_sparse.hpp.
|
inline |
|
inline |
Definition at line 312 of file vector_sparse.hpp.
References shark::blas::compressed_vector< T, I >::begin(), shark::blas::compressed_vector< T, I >::indices(), and shark::blas::compressed_vector< T, I >::values().
|
inline |
Definition at line 270 of file vector_sparse.hpp.
References shark::blas::compressed_vector< T, I >::indices(), shark::blas::compressed_vector< T, I >::nnz(), and shark::blas::compressed_vector< T, I >::values().
Referenced by shark::blas::compressed_vector< T, I >::clear_element(), shark::blas::compressed_vector< T, I >::serialize(), and shark::blas::compressed_vector< T, I >::set_element().
|
inline |
Definition at line 278 of file vector_sparse.hpp.
References shark::blas::compressed_vector< T, I >::indices(), shark::blas::compressed_vector< T, I >::nnz(), and shark::blas::compressed_vector< T, I >::values().
|
inline |
Definition at line 172 of file vector_sparse.hpp.
References shark::blas::compressed_vector< T, I >::nnz_capacity().
Referenced by shark::blas::compressed_vector< T, I >::begin(), shark::blas::compressed_vector< T, I >::clear_element(), shark::blas::compressed_vector< T, I >::clear_range(), shark::blas::compressed_vector< T, I >::end(), shark::blas::compressed_vector< T, I >::serialize(), and shark::blas::compressed_vector< T, I >::set_element().
|
inline |
Definition at line 177 of file vector_sparse.hpp.
References shark::blas::compressed_vector< T, I >::nnz_capacity().
|
inline |
Definition at line 162 of file vector_sparse.hpp.
Referenced by shark::blas::compressed_vector< T, I >::end(), shark::blas::compressed_vector< T, I >::operator()(), and shark::blas::compressed_vector< T, I >::serialize().
|
inline |
Definition at line 159 of file vector_sparse.hpp.
Referenced by shark::blas::compressed_vector< T, I >::indices(), shark::blas::compressed_vector< T, I >::operator=(), shark::blas::compressed_vector< T, I >::reserve(), shark::blas::compressed_vector< T, I >::set_element(), shark::blas::compressed_vector< T, I >::set_filled(), and shark::blas::compressed_vector< T, I >::values().
|
inline |
Definition at line 205 of file vector_sparse.hpp.
References shark::blas::compressed_vector< T, I >::nnz(), and SIZE_CHECK.
|
inline |
Definition at line 212 of file vector_sparse.hpp.
References shark::blas::compressed_vector< T, I >::reference::reference().
|
inline |
Definition at line 230 of file vector_sparse.hpp.
|
inline |
Definition at line 238 of file vector_sparse.hpp.
References shark::blas::assign(), shark::blas::compressed_vector< T, I >::resize(), and shark::blas::compressed_vector< T, I >::size().
|
inline |
Definition at line 244 of file vector_sparse.hpp.
References shark::blas::compressed_vector< T, I >::nnz_capacity(), and shark::blas::compressed_vector< T, I >::swap().
|
inline |
Definition at line 217 of file vector_sparse.hpp.
|
inline |
Definition at line 220 of file vector_sparse.hpp.
|
inline |
Definition at line 197 of file vector_sparse.hpp.
References shark::blas::min(), shark::blas::compressed_vector< T, I >::nnz_capacity(), and shark::blas::compressed_vector< T, I >::size().
Referenced by shark::blas::compressed_vector< T, I >::set_element().
|
inline |
Definition at line 193 of file vector_sparse.hpp.
References shark::blas::compressed_vector< T, I >::size().
Referenced by shark::blas::compressed_vector< T, I >::operator=().
|
inline |
Definition at line 349 of file vector_sparse.hpp.
References shark::blas::compressed_vector< T, I >::begin(), shark::blas::compressed_vector< T, I >::end(), shark::blas::compressed_vector< T, I >::indices(), and shark::blas::compressed_vector< T, I >::nnz().
|
inline |
Definition at line 283 of file vector_sparse.hpp.
References shark::blas::compressed_vector< T, I >::begin(), shark::blas::compressed_vector< T, I >::end(), shark::blas::compressed_vector< T, I >::indices(), shark::blas::compressed_vector< T, I >::nnz_capacity(), RANGE_CHECK, shark::blas::compressed_vector< T, I >::reserve(), and shark::blas::compressed_vector< T, I >::values().
|
inline |
Definition at line 167 of file vector_sparse.hpp.
References shark::blas::compressed_vector< T, I >::nnz_capacity(), and SIZE_CHECK.
|
inline |
Definition at line 156 of file vector_sparse.hpp.
Referenced by shark::blas::compressed_vector< T, I >::operator=(), shark::blas::compressed_vector< T, I >::reserve(), and shark::blas::compressed_vector< T, I >::resize().
|
inline |
Definition at line 251 of file vector_sparse.hpp.
References shark::swap().
Referenced by shark::blas::compressed_vector< T, I >::operator=().
|
inline |
Definition at line 182 of file vector_sparse.hpp.
References shark::blas::compressed_vector< T, I >::nnz_capacity().
Referenced by shark::blas::compressed_vector< T, I >::begin(), shark::blas::compressed_vector< T, I >::clear_element(), shark::blas::compressed_vector< T, I >::clear_range(), shark::blas::compressed_vector< T, I >::end(), and shark::blas::compressed_vector< T, I >::set_element().
|
inline |
Definition at line 187 of file vector_sparse.hpp.
References shark::blas::compressed_vector< T, I >::nnz_capacity().
|
friend |
Definition at line 258 of file vector_sparse.hpp.