Stokhos  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Public Types | Public Member Functions | Protected Attributes | Related Functions | List of all members
Stokhos::Sparse3Tensor< ordinal_type, value_type > Class Template Reference

Data structure storing a sparse 3-tensor C(i,j,k) in a a compressed format. More...

#include <Stokhos_Sparse3Tensor.hpp>

Collaboration diagram for Stokhos::Sparse3Tensor< ordinal_type, value_type >:
Collaboration graph
[legend]

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)
 

Detailed Description

template<typename ordinal_type, typename value_type>
class Stokhos::Sparse3Tensor< ordinal_type, value_type >

Data structure storing a sparse 3-tensor C(i,j,k) in a a compressed format.

Member Function Documentation

template<typename ordinal_type , typename value_type >
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.

Friends And Related Function Documentation

template<typename index_iterator , typename value_iterator >
SparseArrayIterator< index_iterator, value_iterator >::value_type index ( const SparseArrayIterator< index_iterator, value_iterator > &  it)
related
template<typename index_iterator , typename value_iterator >
SparseArrayReverseIterator< index_iterator, value_iterator >::value_type index ( const SparseArrayReverseIterator< index_iterator, value_iterator > &  it)
related

Return index of a Sparse3Tensor reverse iterator

template<typename ordinal_type , typename value_type >
std::ostream & operator<< ( std::ostream &  os,
const Sparse3Tensor< ordinal_type, value_type > &  Cijk 
)
related

Print triple product tensor to output stream

References Stokhos::Sparse3Tensor< ordinal_type, value_type >::print().

template<typename index_iterator , typename value_iterator >
SparseArrayIterator< index_iterator, value_iterator >::value_reference value ( const SparseArrayIterator< index_iterator, value_iterator > &  it)
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().


The documentation for this class was generated from the following files: