MADNESS 0.10.1
madness::HighDimIndexIterator Class Reference

#include <indexit.h>

Inheritance diagram for madness::HighDimIndexIterator:
Collaboration diagram for madness::HighDimIndexIterator:

Public Member Functions

template<typename V>
 HighDimIndexIterator (const V &limits)
 Iterates dimension d from 0 to limts[d]-1 inclusive.
 HighDimIndexIterator (int ndim, const long limits[])
 Iterates dimension d from 0 to limts[d]-1 inclusive.
 HighDimIndexIterator (int ndim, long top)
 Iterates all dimensions from 0 to top-1 inclusive.
virtual ~HighDimIndexIterator ()
virtual IndexIterator & operator++ ()
Public Member Functions inherited from madness::IndexIterator
template<typename V>
 IndexIterator (const V &limits)
 Iterates dimension d from 0 to limits[d]-1 inclusive.
 IndexIterator (int ndim, const long limits[])
 Iterates dimension d from 0 to limits[d]-1 inclusive.
 IndexIterator (int ndim, long top)
 Iterates all dimensions from 0 to top-1 inclusive.
virtual ~IndexIterator ()
 operator bool () const
const std::vector< long > & operator* () const
long operator[] (int d) const
IndexIterator & reset ()

Private Member Functions

 HighDimIndexIterator ()
 Bury the default constructor.

Additional Inherited Members

Static Public Member Functions inherited from madness::IndexIterator
static void test ()
 this function should also be deprecated
Protected Attributes inherited from madness::IndexIterator
bool finished
std::vector< long > i
 Current index.
std::vector< long > n
 User specified upper limits for each dimension.

Detailed Description

The inherited IndexIterator for iterating over the high dimensions quickly and the low dimensions slowly (all elements of dimension 0 at index i will be visited before any element of index i+1 in dim. 0).

This is equivalent to the original implementation of IndexIterator.

Constructor & Destructor Documentation

◆ HighDimIndexIterator() [1/4]

madness::HighDimIndexIterator::HighDimIndexIterator ( )
inlineprivate

Bury the default constructor.

References madness::IndexIterator::IndexIterator().

◆ HighDimIndexIterator() [2/4]

template<typename V>
madness::HighDimIndexIterator::HighDimIndexIterator ( const V & limits)
inline

Iterates dimension d from 0 to limts[d]-1 inclusive.

References madness::IndexIterator::IndexIterator(), and V().

◆ HighDimIndexIterator() [3/4]

madness::HighDimIndexIterator::HighDimIndexIterator ( int ndim,
const long limits[] )
inline

Iterates dimension d from 0 to limts[d]-1 inclusive.

References madness::IndexIterator::IndexIterator().

◆ HighDimIndexIterator() [4/4]

madness::HighDimIndexIterator::HighDimIndexIterator ( int ndim,
long top )
inline

Iterates all dimensions from 0 to top-1 inclusive.

References madness::IndexIterator::IndexIterator().

◆ ~HighDimIndexIterator()

virtual madness::HighDimIndexIterator::~HighDimIndexIterator ( )
inlinevirtual

Member Function Documentation

◆ operator++()

virtual IndexIterator & madness::HighDimIndexIterator::operator++ ( )
inlinevirtual

increment the highest dimension first and check for overflows up through dimension 0

Reimplemented from madness::IndexIterator.

References d, madness::IndexIterator::finished, madness::IndexIterator::i, and madness::IndexIterator::n.


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