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

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. | |
| 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. | |
Protected Attributes | |
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 Symbols | |
(Note that these are not member symbols.) | |
| 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) |
i-based data-structure accessor methods | |
| bool | fill_completed |
| Indicate whether fillComplete() has been called. | |
| 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. | |
Data structure storing a sparse 3-tensor C(i,j,k) in a a compressed format.
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::Sparse3Tensor | ( | ) |
Constructor.
References fill_completed.
| void Stokhos::Sparse3Tensor< ordinal_type, value_type >::add_term | ( | ordinal_type | i, |
| ordinal_type | j, | ||
| ordinal_type | k, | ||
| const value_type & | c ) |
Add new term for given (i,j,k).
References fill_completed, ikj_data, and kji_data.
| 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.
References fill_completed, ikj_array, ikj_data, kji_array, kji_data, and Stokhos::ProductContainer< coeff_type >::resize().
| bool Stokhos::Sparse3Tensor< ordinal_type, value_type >::fillCompleted | ( | ) | const |
Return whether fillComplete() has been called.
References fill_completed.
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::kji_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::find_i | ( | const kj_iterator & | j, |
| ordinal_type | i ) const |
Return i iterator given j iterator and index i.
References fill_completed, and Stokhos::SparseArrayIterator< index_iterator_type, value_iterator_type >::value().
Referenced by getValue().
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::i_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::find_i | ( | ordinal_type | i | ) | const |
Return i iterator for given index i.
References fill_completed, and ikj_array.
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::ikj_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::find_j | ( | const k_iterator & | k, |
| ordinal_type | j ) const |
Return j iterator given k iterator and index j.
References fill_completed, and Stokhos::SparseArrayIterator< index_iterator_type, value_iterator_type >::value().
Referenced by getValue().
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::ik_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::find_k | ( | const i_iterator & | i, |
| ordinal_type | k ) const |
Return k iterator given i iterator and index k.
References fill_completed, and Stokhos::SparseArrayIterator< index_iterator_type, value_iterator_type >::value().
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::k_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::find_k | ( | ordinal_type | k | ) | const |
Return k iterator for given index k.
References fill_completed, and kji_array.
Referenced by getValue(), Stokhos::BasisInteractionGraph::initialize(), and Stokhos::AdaptivityManager::setupOperator().
| value_type Stokhos::Sparse3Tensor< ordinal_type, value_type >::getValue | ( | ordinal_type | i, |
| ordinal_type | j, | ||
| ordinal_type | k ) const |
Get Cijk value for a given i, j, k indices.
References fill_completed, find_i(), find_j(), find_k(), i_end(), j_end(), k_end(), and Stokhos::SparseArrayIterator< index_iterator_type, value_iterator_type >::value().
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::i_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::i_begin | ( | ) | const |
Iterator pointing to first k entry.
References fill_completed, and ikj_array.
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::kji_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::i_begin | ( | const kj_iterator & | j | ) | const |
Iterator pointing to first i entry for given j and k.
References fill_completed, and Stokhos::SparseArrayIterator< index_iterator_type, value_iterator_type >::value().
Referenced by Stokhos::HouseTriDiagPCEBasis< ordinal_type, value_type >::HouseTriDiagPCEBasis(), Stokhos::BasisInteractionGraph::initialize(), Stokhos::MonoProjPCEBasis< ordinal_type, value_type >::MonoProjPCEBasis(), num_entries(), print(), Stokhos::sparse3Tensor2CrsGraph(), and Stokhos::sparse3Tensor2CrsGraph().
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::i_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::i_end | ( | ) | const |
Iterator pointing to last k entry.
References fill_completed, and ikj_array.
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::kji_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::i_end | ( | const kj_iterator & | j | ) | const |
Iterator pointing to last i entry for given j and k.
References fill_completed, and Stokhos::SparseArrayIterator< index_iterator_type, value_iterator_type >::value().
Referenced by getValue(), Stokhos::HouseTriDiagPCEBasis< ordinal_type, value_type >::HouseTriDiagPCEBasis(), Stokhos::BasisInteractionGraph::initialize(), Stokhos::MonoProjPCEBasis< ordinal_type, value_type >::MonoProjPCEBasis(), num_entries(), print(), Stokhos::sparse3Tensor2CrsGraph(), and Stokhos::sparse3Tensor2CrsGraph().
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::i_reverse_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::i_rbegin | ( | ) | const |
Reverse iterator pointing to last k entry.
References fill_completed, and ikj_array.
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::i_reverse_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::i_rend | ( | ) | const |
Reverse iterator pointing to first k entry.
References fill_completed, and ikj_array.
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::ikj_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::j_begin | ( | const k_iterator & | k | ) | const |
Iterator pointing to first j entry for given k.
References fill_completed, and Stokhos::SparseArrayIterator< index_iterator_type, value_iterator_type >::value().
Referenced by Stokhos::HouseTriDiagPCEBasis< ordinal_type, value_type >::HouseTriDiagPCEBasis(), Stokhos::BasisInteractionGraph::initialize(), Stokhos::MonoProjPCEBasis< ordinal_type, value_type >::MonoProjPCEBasis(), num_entries(), print(), Stokhos::sparse3Tensor2CrsGraph(), and Stokhos::sparse3Tensor2CrsGraph().
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::kj_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::j_begin | ( | const k_reverse_iterator & | k | ) | const |
Iterator pointing to first j entry for given k.
References fill_completed, and Stokhos::SparseArrayReverseIterator< index_iterator_type, value_iterator_type >::value().
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::ikj_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::j_end | ( | const k_iterator & | k | ) | const |
Iterator pointing to last j entry for given k.
References fill_completed, and Stokhos::SparseArrayIterator< index_iterator_type, value_iterator_type >::value().
Referenced by getValue(), Stokhos::HouseTriDiagPCEBasis< ordinal_type, value_type >::HouseTriDiagPCEBasis(), Stokhos::BasisInteractionGraph::initialize(), Stokhos::MonoProjPCEBasis< ordinal_type, value_type >::MonoProjPCEBasis(), num_entries(), print(), Stokhos::sparse3Tensor2CrsGraph(), and Stokhos::sparse3Tensor2CrsGraph().
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::kj_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::j_end | ( | const k_reverse_iterator & | k | ) | const |
Iterator pointing to last j entry for given k.
References fill_completed, and Stokhos::SparseArrayReverseIterator< index_iterator_type, value_iterator_type >::value().
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::k_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::k_begin | ( | ) | const |
Iterator pointing to first k entry.
References fill_completed, and kji_array.
Referenced by Stokhos::HouseTriDiagPCEBasis< ordinal_type, value_type >::HouseTriDiagPCEBasis(), Stokhos::BasisInteractionGraph::initialize(), Stokhos::MonoProjPCEBasis< ordinal_type, value_type >::MonoProjPCEBasis(), num_entries(), print(), Stokhos::AdaptivityManager::setupOperator(), Stokhos::sparse3Tensor2CrsGraph(), and Stokhos::sparse3Tensor2CrsGraph().
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::ik_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::k_begin | ( | const i_iterator & | i | ) | const |
Iterator pointing to first k entry for given i.
References fill_completed, and Stokhos::SparseArrayIterator< index_iterator_type, value_iterator_type >::value().
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::ik_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::k_begin | ( | const i_reverse_iterator & | i | ) | const |
Iterator pointing to first k entry for given i.
References fill_completed, and Stokhos::SparseArrayReverseIterator< index_iterator_type, value_iterator_type >::value().
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::k_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::k_end | ( | ) | const |
Iterator pointing to last k entry.
References fill_completed, and kji_array.
Referenced by getValue(), Stokhos::HouseTriDiagPCEBasis< ordinal_type, value_type >::HouseTriDiagPCEBasis(), Stokhos::BasisInteractionGraph::initialize(), Stokhos::MonoProjPCEBasis< ordinal_type, value_type >::MonoProjPCEBasis(), num_entries(), print(), Stokhos::AdaptivityManager::setupOperator(), Stokhos::sparse3Tensor2CrsGraph(), and Stokhos::sparse3Tensor2CrsGraph().
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::ik_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::k_end | ( | const i_iterator & | i | ) | const |
Iterator pointing to last k entry for given i.
References fill_completed, and Stokhos::SparseArrayIterator< index_iterator_type, value_iterator_type >::value().
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::ik_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::k_end | ( | const i_reverse_iterator & | i | ) | const |
Iterator pointing to last k entry for given i.
References fill_completed, and Stokhos::SparseArrayReverseIterator< index_iterator_type, value_iterator_type >::value().
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::k_reverse_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::k_rbegin | ( | ) | const |
Reverse iterator pointing to last k entry.
References fill_completed, and kji_array.
| Stokhos::Sparse3Tensor< ordinal_type, value_type >::k_reverse_iterator Stokhos::Sparse3Tensor< ordinal_type, value_type >::k_rend | ( | ) | const |
Reverse iterator pointing to first k entry.
References fill_completed, and kji_array.
| ordinal_type Stokhos::Sparse3Tensor< ordinal_type, value_type >::num_entries | ( | ) | const |
| ordinal_type Stokhos::Sparse3Tensor< ordinal_type, value_type >::num_i | ( | ) | const |
Number of i entries in C(i,j,k).
References fill_completed, and ikj_array.
| ordinal_type Stokhos::Sparse3Tensor< ordinal_type, value_type >::num_i | ( | const kj_iterator & | j | ) | const |
Number of i entries in C(i,j,k) for given k and j.
References fill_completed, and Stokhos::SparseArrayIterator< index_iterator_type, value_iterator_type >::value().
| ordinal_type Stokhos::Sparse3Tensor< ordinal_type, value_type >::num_j | ( | const k_iterator & | k | ) | const |
Number of j entries in C(i,j,k) for given k.
References fill_completed, and Stokhos::SparseArrayIterator< index_iterator_type, value_iterator_type >::value().
| ordinal_type Stokhos::Sparse3Tensor< ordinal_type, value_type >::num_k | ( | ) | const |
Number of k entries in C(i,j,k).
References fill_completed, and kji_array.
| ordinal_type Stokhos::Sparse3Tensor< ordinal_type, value_type >::num_k | ( | const i_iterator & | i | ) | const |
Number of k entries in C(i,j,k) for given i.
References fill_completed, and Stokhos::SparseArrayIterator< index_iterator_type, value_iterator_type >::value().
| void Stokhos::Sparse3Tensor< ordinal_type, value_type >::print | ( | std::ostream & | os | ) | const |
Print tensor.
References fill_completed, i_begin(), i_end(), index(), j_begin(), j_end(), k_begin(), k_end(), and value().
Referenced by Stokhos::Sparse3Tensor< int, double >::operator<<().
| void Stokhos::Sparse3Tensor< ordinal_type, value_type >::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.
References fill_completed, ikj_data, and kji_data.
|
Return index of a Sparse3Tensor iterator (e.g., i for a given kji_iterator)
Referenced by print().
|
Return index of a Sparse3Tensor reverse iterator
|
Print triple product tensor to output stream
|
Return value of a Sparse3Tensor iterator (e.g., c = C(i,j,k) for a given kji_iterator)
Referenced by print().
|
protected |
Indicate whether fillComplete() has been called.
Referenced by add_term(), fillComplete(), fillCompleted(), find_i(), find_i(), find_j(), find_k(), find_k(), getValue(), i_begin(), i_begin(), i_end(), i_end(), i_rbegin(), i_rend(), j_begin(), j_begin(), j_end(), j_end(), k_begin(), k_begin(), k_begin(), k_end(), k_end(), k_end(), k_rbegin(), k_rend(), num_entries(), num_i(), num_i(), num_j(), num_k(), num_k(), print(), Sparse3Tensor(), and sum_term().
|
protected |
kji indices and values in Cijk (data structure for iterating)
Referenced by fillComplete(), find_i(), i_begin(), i_end(), i_rbegin(), i_rend(), and num_i().
|
protected |
ikj indices and values in Cijk (data structure for filling)
Referenced by add_term(), fillComplete(), and sum_term().
|
protected |
kji indices and values in Cijk (data structure for iterating)
Referenced by fillComplete(), find_k(), k_begin(), k_end(), k_rbegin(), k_rend(), and num_k().
|
protected |
kji indices and values in Cijk (data structure for filling)
Referenced by add_term(), fillComplete(), and sum_term().