Stokhos
Development
|
Iterator class for iterating over elements of the index set. More...
#include <Stokhos_ProductBasisUtils.hpp>
Public Types | |
typedef std::iterator < std::input_iterator_tag, multiindex_type > | base_type |
typedef base_type::iterator_category | iterator_category |
typedef base_type::value_type | value_type |
typedef base_type::difference_type | difference_type |
typedef base_type::reference | reference |
typedef base_type::pointer | pointer |
typedef const multiindex_type & | const_reference |
typedef const multiindex_type * | const_pointer |
Public Member Functions | |
Iterator (ordinal_type max_order_, const multiindex_type &index_) | |
Constructor. More... | |
bool | operator== (const Iterator &it) const |
Compare equality of iterators. | |
bool | operator!= (const Iterator &it) const |
Compare inequality of iterators. | |
const_reference | operator* () const |
Dereference. | |
const_pointer | operator-> () const |
Dereference. | |
Iterator & | operator++ () |
Prefix increment, i.e., ++iterator. More... | |
Iterator & | operator++ (int) |
Postfix increment, i.e., iterator++. | |
Protected Attributes | |
ordinal_type | max_order |
Maximum order of iterator. | |
multiindex_type | index |
Current value of iterator. | |
ordinal_type | dim |
Dimension. | |
Teuchos::Array< ordinal_type > | orders |
Maximum orders for each term to determine how to increment. | |
Iterator class for iterating over elements of the index set.
|
inline |
Constructor.
max_order_
is the maximum order of the set (inclusive) and index_
is the starting multi-index.
References Stokhos::TotalOrderIndexSet< ordinal_t >::Iterator::index, Stokhos::TotalOrderIndexSet< ordinal_t >::Iterator::max_order, and Stokhos::TotalOrderIndexSet< ordinal_t >::Iterator::orders.
|
inline |
Prefix increment, i.e., ++iterator.
No particular ordering of the indices is guaranteed. The current implementation produces multi-indices sorted lexographically backwards among the elements, e.g., [0 0], [1 0], [2 0], ... [0 1], [1 1], [2 1], ... but one shouldn't assume that. To obtain a specific ordering, one should implement a "less" functional and put the indices in a sorted container such as std::map<>.
References Stokhos::TotalOrderIndexSet< ordinal_t >::Iterator::index, and Stokhos::TotalOrderIndexSet< ordinal_t >::Iterator::orders.