|
Stokhos Package Browser (Single Doxygen Collection)
Version of the Day
|
Go to the documentation of this file.
42 #ifndef STOKHOS_SPARSE3TENSOR_HPP
43 #define STOKHOS_SPARSE3TENSOR_HPP
55 template <
typename ordinal_type,
typename value_type>
60 typedef std::map<const ordinal_type, value_type>
i_map;
61 typedef std::map<const ordinal_type, i_map>
ji_map;
62 typedef std::map<const ordinal_type, ji_map>
kji_map;
64 typedef std::map<const ordinal_type, value_type>
j_map;
65 typedef std::map<const ordinal_type, j_map>
kj_map;
66 typedef std::map<const ordinal_type, kj_map>
ikj_map;
128 void print(std::ostream& os)
const;
282 template <
typename ordinal_type,
typename value_type>
293 template <
typename index_iterator,
typename value_iterator>
302 template <
typename index_iterator,
typename value_iterator>
313 template <
typename index_iterator,
typename value_iterator>
324 #endif // STOKHOS_SPARSE3TENSOR_HPP
std::map< const ordinal_type, value_type > i_map
ikj_sparse_array::const_reverse_iterator i_reverse_iterator
Iterator for looping over i entries in reverse.
void sum_term(ordinal_type i, ordinal_type j, ordinal_type k, const value_type &c)
Add new term for given (i,j,k) and sum in if already there.
Container for a "sparse" array.
void fillComplete()
Signal all terms have been added.
kj_iterator find_j(const k_iterator &k, ordinal_type j) const
Return j iterator given k iterator and index j.
Bi-directional iterator for traversing a sparse array.
i_reverse_iterator i_rbegin() const
Reverse iterator pointing to last k entry.
std::map< const ordinal_type, kj_map > ikj_map
SparseArray< ordinal_type, kj_sparse_array > ikj_sparse_array
bool fillCompleted() const
Return whether fillComplete() has been called.
bool fill_completed
Indicate whether fillComplete() has been called.
k_reverse_iterator k_rend() const
Reverse iterator pointing to first k entry.
ikj_sparse_array ikj_array
kji indices and values in Cijk (data structure for iterating)
kj_iterator j_end(const k_iterator &k) const
Iterator pointing to last j entry for given k.
SparseArray< ordinal_type, j_sparse_array > kj_sparse_array
ji_sparse_array::const_iterator kj_iterator
Iterator for looping over j entries given k.
std::ostream & operator<<(std::ostream &os, const ProductContainer< coeff_type > &vec)
j_sparse_array::const_iterator ikj_iterator
Iterator for looping over j entries given i and k.
i_iterator i_end() const
Iterator pointing to last k entry.
ordinal_type num_entries() const
Return number of non-zero entries.
ikj_sparse_array::const_iterator i_iterator
Iterator for looping over i entries.
kj_iterator j_begin(const k_iterator &k) const
Iterator pointing to first j entry for given k.
i_reverse_iterator i_rend() const
Reverse iterator pointing to first k entry.
Data structure storing a sparse 3-tensor C(i,j,k) in a a compressed format.
void print(std::ostream &os) const
Print tensor.
std::map< const ordinal_type, ji_map > kji_map
value_reference value() const
Return value associated with iterator.
ordinal_type num_j(const k_iterator &k) const
Number of j entries in C(i,j,k) for given k.
kj_sparse_array::const_iterator ik_iterator
Iterator for looping over k entries given i.
kji_iterator find_i(const kj_iterator &j, ordinal_type i) const
Return i iterator given j iterator and index i.
k_iterator find_k(ordinal_type k) const
Return k iterator for given index k.
i_iterator i_begin() const
Iterator pointing to first k entry.
Top-level namespace for Stokhos classes and functions.
SparseArrayReverseIterator< index_iterator, value_iterator >::value_type index(const SparseArrayReverseIterator< index_iterator, value_iterator > &it)
SparseArray< ordinal_type, i_sparse_array > ji_sparse_array
kji_sparse_array::const_iterator k_iterator
Iterator for looping over k entries.
Bi-directional reverse iterator for traversing a sparse array.
j_sparse_array::const_iterator kji_iterator
Iterator for looping over i entries given k and j.
ikj_map ikj_data
ikj indices and values in Cijk (data structure for filling)
std::map< const ordinal_type, value_type > j_map
value_type getValue(ordinal_type i, ordinal_type j, ordinal_type k) const
Get Cijk value for a given i, j, k indices.
SparseArray< ordinal_type, value_type > j_sparse_array
std::map< const ordinal_type, j_map > kj_map
base_type::value_type value_type
std::map< const ordinal_type, i_map > ji_map
kji_sparse_array kji_array
kji indices and values in Cijk (data structure for iterating)
~Sparse3Tensor()
Destructor.
void add_term(ordinal_type i, ordinal_type j, ordinal_type k, const value_type &c)
Add new term for given (i,j,k)
ordinal_type num_i() const
Number of i entries in C(i,j,k)
kji_sparse_array::const_reverse_iterator k_reverse_iterator
Iterator for looping over k entries in reverse.
Sparse3Tensor()
Constructor.
kji_map kji_data
kji indices and values in Cijk (data structure for filling)
std::iterator_traits< value_iterator_type >::reference value_reference
Sparse3Tensor & operator=(const Sparse3Tensor &b)
SparseArray< ordinal_type, value_type > i_sparse_array
k_iterator k_begin() const
Iterator pointing to first k entry.
SparseArray< ordinal_type, ji_sparse_array > kji_sparse_array
SparseArrayIterator< index_iterator, value_iterator >::value_type index(const SparseArrayIterator< index_iterator, value_iterator > &it)
SparseArrayIterator< index_iterator, value_iterator >::value_reference value(const SparseArrayIterator< index_iterator, value_iterator > &it)
k_iterator k_end() const
Iterator pointing to last k entry.
base_type::value_type value_type
k_reverse_iterator k_rbegin() const
Reverse iterator pointing to last k entry.
ordinal_type num_k() const
Number of k entries in C(i,j,k)