C++QEDCore  v2 Milestone 10
a framework for simulating open quantum dynamics – core
blitzplusplus::basi_fast::Iterator< RANK, V, IS_CONST > Class Template Reference

“Fast” version of basi::Iterator relying on a pre-calculated set of slices stored by SlicesData More...

#include <BlitzArraySliceIterator.h>

+ Inheritance diagram for blitzplusplus::basi_fast::Iterator< RANK, V, IS_CONST >:
+ Collaboration diagram for blitzplusplus::basi_fast::Iterator< RANK, V, IS_CONST >:

Public Types

typedef basi::ttd::ConditionalConstCArray< RANK, IS_CONST > CcCA
 
typedef basi::ttd::ResCArray< V > CARes
 
typedef basi::ttd::ConditionalConstResCArray< V, IS_CONST > CcCARes
 
typedef boost::iterator_range< IteratorRange
 

Public Member Functions

Iteratoroperator++ ()
 
CcCARes & operator* () const
 
template<bool IS_END>
 Iterator (CcCA &array, const SlicesData< RANK, V > &, boost::mpl::bool_< IS_END > b)
 

Friends

bool operator== (const Iterator &i1, const Iterator &i2)
 

Related Functions

(Note that these are not member functions.)

template<typename V , typename A >
const Iterator< Rank< A >::value, V, false > begin (A &array, const SlicesData< Rank< A >::value, V > &sd)
 Same as begin but here it returns a “fast” Iterator instance. More...
 
template<typename V , typename A >
const Iterator< Rank< A >::value, V, true > begin (const A &array, const SlicesData< Rank< A >::value, V > &sd)
 More...
 
template<typename V , typename A >
const Iterator< Rank< A >::value, V, false > end (A &array, const SlicesData< Rank< A >::value, V > &sd)
 Same as end but here it returns a “fast” Iterator instance. More...
 
template<typename V , typename A >
const Iterator< Rank< A >::value, V, true > end (const A &array, const SlicesData< Rank< A >::value, V > &sd)
 More...
 
template<typename V , typename A >
const boost::iterator_range< Iterator< Rank< A >::value, V, true > > fullRange (const A &array, const SlicesData< Rank< A >::value, V > &sd)
 Same as fullRange but here it returns an iterator range of “fast” Iterator instances. More...
 
template<typename V , typename A >
const boost::iterator_range< Iterator< Rank< A >::value, V, false > > fullRange (A &array, const SlicesData< Rank< A >::value, V > &sd)
 More...
 

Detailed Description

template<int RANK, typename V, bool IS_CONST>
class blitzplusplus::basi_fast::Iterator< RANK, V, IS_CONST >

“Fast” version of basi::Iterator relying on a pre-calculated set of slices stored by SlicesData

Structure analogous to basi::Iterator.

Template Parameters
RANKarity of the Hilbert space
Vcompile-time vector holding the retained index positions (cf. Specifying subsystems)
See also
SlicesData

Definition at line 493 of file BlitzArraySliceIterator.h.

Friends And Related Function Documentation

template<typename V , typename A >
const Iterator< Rank< A >::value, V, false > begin ( A &  array,
const SlicesData< Rank< A >::value, V > &  sd 
)
related

Same as begin but here it returns a “fast” Iterator instance.

template<typename V , typename A >
const Iterator< Rank< A >::value, V, true > begin ( const A &  array,
const SlicesData< Rank< A >::value, V > &  sd 
)
related

template<typename V , typename A >
const Iterator< Rank< A >::value, V, false > end ( A &  array,
const SlicesData< Rank< A >::value, V > &  sd 
)
related

Same as end but here it returns a “fast” Iterator instance.

template<typename V , typename A >
const Iterator< Rank< A >::value, V, true > end ( const A &  array,
const SlicesData< Rank< A >::value, V > &  sd 
)
related

template<typename V , typename A >
const boost::iterator_range< Iterator< Rank< A >::value, V, true > > fullRange ( const A &  array,
const SlicesData< Rank< A >::value, V > &  sd 
)
related

Same as fullRange but here it returns an iterator range of “fast” Iterator instances.

template<typename V , typename A >
const boost::iterator_range< Iterator< Rank< A >::value, V, false > > fullRange ( A &  array,
const SlicesData< Rank< A >::value, V > &  sd 
)
related


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