|
Stokhos
Development
|
Data structure storing a sparse 3-tensor C(i,j,k) in a a compressed format. More...
#include <Stokhos_Sparse3Tensor.hpp>

Public Types | |
|
typedef kji_sparse_array::const_iterator | k_iterator |
| Iterator for looping over k entries. | |
|
typedef kji_sparse_array::const_reverse_iterator | k_reverse_iterator |
| Iterator for looping over k entries in reverse. | |
|
typedef ji_sparse_array::const_iterator | kj_iterator |
| Iterator for looping over j entries given k. | |
|
typedef j_sparse_array::const_iterator | kji_iterator |
| Iterator for looping over i entries given k and j. | |
|
typedef ikj_sparse_array::const_iterator | i_iterator |
| Iterator for looping over i entries. | |
|
typedef ikj_sparse_array::const_reverse_iterator | i_reverse_iterator |
| Iterator for looping over i entries in reverse. | |
|
typedef kj_sparse_array::const_iterator | ik_iterator |
| Iterator for looping over k entries given i. | |
|
typedef j_sparse_array::const_iterator | ikj_iterator |
| Iterator for looping over j entries given i and k. | |
Public Member Functions | |
| Sparse3Tensor () | |
| Constructor. | |
| ~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) | |
| 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. | |
| void | fillComplete () |
| Signal all terms have been added. More... | |
| bool | fillCompleted () const |
| Return whether fillComplete() has been called. | |
| void | print (std::ostream &os) const |
| Print tensor. | |
| value_type | getValue (ordinal_type i, ordinal_type j, ordinal_type k) const |
| Get Cijk value for a given i, j, k indices. | |
| ordinal_type | num_entries () const |
| Return number of non-zero entries. | |
k-based data-structure accessor methods | |
| ordinal_type | num_k () const |
| Number of k entries in C(i,j,k) | |
| ordinal_type | num_j (const k_iterator &k) const |
| Number of j entries in C(i,j,k) for given k. | |
| ordinal_type | num_i (const kj_iterator &j) const |
| Number of i entries in C(i,j,k) for given k and j. | |
| k_iterator | find_k (ordinal_type k) const |
| Return k iterator for given index k. | |
| kj_iterator | find_j (const k_iterator &k, ordinal_type j) const |
| Return j iterator given k iterator and index j. | |
| kji_iterator | find_i (const kj_iterator &j, ordinal_type i) const |
| Return i iterator given j iterator and index i. | |
| k_iterator | k_begin () const |
| Iterator pointing to first k entry. | |
| k_iterator | k_end () const |
| Iterator pointing to last k entry. | |
| k_reverse_iterator | k_rbegin () const |
| Reverse iterator pointing to last k entry. | |
| k_reverse_iterator | k_rend () const |
| Reverse iterator pointing to first k entry. | |
| kj_iterator | j_begin (const k_iterator &k) const |
| Iterator pointing to first j entry for given k. | |
| kj_iterator | j_end (const k_iterator &k) const |
| Iterator pointing to last j entry for given k. | |
| kj_iterator | j_begin (const k_reverse_iterator &k) const |
| Iterator pointing to first j entry for given k. | |
| kj_iterator | j_end (const k_reverse_iterator &k) const |
| Iterator pointing to last j entry for given k. | |
| kji_iterator | i_begin (const kj_iterator &j) const |
| Iterator pointing to first i entry for given j and k. | |
| kji_iterator | i_end (const kj_iterator &j) const |
| Iterator pointing to last i entry for given j and k. | |
i-based data-structure accessor methods | |
| ordinal_type | num_i () const |
| Number of i entries in C(i,j,k) | |
| ordinal_type | num_k (const i_iterator &i) const |
| Number of k entries in C(i,j,k) for given i. | |
| ordinal_type | num_j (const ik_iterator &k) const |
| Number of j entries in C(i,j,k) for given i and k. | |
| i_iterator | find_i (ordinal_type i) const |
| Return i iterator for given index i. | |
| ik_iterator | find_k (const i_iterator &i, ordinal_type k) const |
| Return k iterator given i iterator and index k. | |
| ikj_iterator | find_j (const ik_iterator &k, ordinal_type j) const |
| Return j iterator given k iterator and index j. | |
| i_iterator | i_begin () const |
| Iterator pointing to first k entry. | |
| i_iterator | i_end () const |
| Iterator pointing to last k entry. | |
| i_reverse_iterator | i_rbegin () const |
| Reverse iterator pointing to last k entry. | |
| i_reverse_iterator | i_rend () const |
| Reverse iterator pointing to first k entry. | |
| ik_iterator | k_begin (const i_iterator &i) const |
| Iterator pointing to first k entry for given i. | |
| ik_iterator | k_end (const i_iterator &i) const |
| Iterator pointing to last k entry for given i. | |
| ik_iterator | k_begin (const i_reverse_iterator &i) const |
| Iterator pointing to first k entry for given i. | |
| ik_iterator | k_end (const i_reverse_iterator &i) const |
| Iterator pointing to last k entry for given i. | |
| ikj_iterator | j_begin (const ik_iterator &k) const |
| Iterator pointing to first j entry for given i and k. | |
| ikj_iterator | j_end (const ik_iterator &k) const |
| Iterator pointing to last j entry for given i and k. | |
Protected Attributes | |
| bool | fill_completed |
| Indicate whether fillComplete() has been called. | |
k-based structure | |
| kji_map | kji_data |
| kji indices and values in Cijk (data structure for filling) | |
| kji_sparse_array | kji_array |
| kji indices and values in Cijk (data structure for iterating) | |
i-based structure | |
| ikj_map | ikj_data |
| ikj indices and values in Cijk (data structure for filling) | |
| ikj_sparse_array | ikj_array |
| kji indices and values in Cijk (data structure for iterating) | |
Related Functions | |
(Note that these are not member functions.) | |
| template<typename ordinal_type , typename value_type > | |
| std::ostream & | operator<< (std::ostream &os, const Sparse3Tensor< ordinal_type, value_type > &Cijk) |
| template<typename index_iterator , typename value_iterator > | |
| SparseArrayIterator < index_iterator, value_iterator >::value_type | index (const SparseArrayIterator< index_iterator, value_iterator > &it) |
| template<typename index_iterator , typename value_iterator > | |
| SparseArrayReverseIterator < index_iterator, value_iterator >::value_type | index (const SparseArrayReverseIterator< index_iterator, value_iterator > &it) |
| template<typename index_iterator , typename value_iterator > | |
| SparseArrayIterator < index_iterator, value_iterator > ::value_reference | value (const SparseArrayIterator< index_iterator, value_iterator > &it) |
Data structure storing a sparse 3-tensor C(i,j,k) in a a compressed format.
| void Stokhos::Sparse3Tensor< ordinal_type, value_type >::fillComplete | ( | ) |
Signal all terms have been added.
This method must be called before using any of the accessor methods below. It sets up a new set of data structures that are much more efficient for iterating through the tensor.
|
related |
Return index of a Sparse3Tensor iterator (e.g., i for a given kji_iterator)
Referenced by Stokhos::KL::ExponentialRandomField< value_type, execution_space >::ExponentialRandomField(), and Stokhos::TensorProductQuadrature< ordinal_type, value_type >::TensorProductQuadrature().
|
related |
Return index of a Sparse3Tensor reverse iterator
|
related |
Print triple product tensor to output stream
References Stokhos::Sparse3Tensor< ordinal_type, value_type >::print().
|
related |
Return value of a Sparse3Tensor iterator (e.g., c = C(i,j,k) for a given kji_iterator)
References Stokhos::SparseArrayIterator< index_iterator, value_iterator >::value().
1.8.5