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().