C++QEDCore  v2 Milestone 10
a framework for simulating open quantum dynamics – core
BlitzArraySliceIterator.h File Reference

Definition of blitzplusplus::basi::Iterator together with its helpers. More...

#include "BlitzArraySliceIteratorFwd.h"
#include "BlitzArrayTraits.h"
#include "MultiIndexIterator.h"
#include "TMP_Tools.h"
#include "Exception.h"
#include <boost/mpl/size.hpp>
#include <boost/mpl/sort.hpp>
#include <boost/mpl/unique.hpp>
#include <boost/mpl/max_element.hpp>
#include <boost/range.hpp>
#include <list>
#include "details_BlitzArraySliceIteratorReentrant.h"
+ Include dependency graph for BlitzArraySliceIterator.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  blitzplusplus::basi::Size< V >
 A forwarding metafunction to boost::mpl::size. More...
 
struct  blitzplusplus::basi::ConsistencyChecker< RANK, V >
 Checking the consistency of template arguments for use in slicing. More...
 
struct  blitzplusplus::basi::ConsistencyChecker< RANK, boost::mpl::range_c< int, I1, I2 > >
 Specialization necessary since boost::mpl::range_c cannot be sorted. More...
 
class  blitzplusplus::basi::TransposerOrIndexerRankTooHighException< RANK >
 Exception thrown if the partial specialization of Transposer or Indexer for the given RANK does not exist. More...
 
class  blitzplusplus::basi::Transposer< RANK, V >
 Class performing the “possible permutation” of the retained indices (cf. Synopsis). More...
 
class  blitzplusplus::basi::Indexer< RANK, V >
 Performs the slicing on an array already transposed by Transposer. More...
 
class  blitzplusplus::basi::Iterator< RANK, V, IS_CONST >
 BlitzArraySliceIterator. More...
 
class  blitzplusplus::SlicesData< RANK, V >
 Contains data for pre-calculated slices for basi_fast::Iterator. More...
 
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 More...
 

Namespaces

 blitzplusplus
 Comprises our own extensions to Blitz++.
 
 blitzplusplus::basi
 The name of the namespace stands for BlitzArraySliceIterator.
 
 blitzplusplus::basi::ttd
 Contains template aliases for use in BlitzArraySliceIterator.h & BlitzArraySliceIterator.tcc.
 
 blitzplusplus::basi_fast
 Contains a “fast” version of BlitzArraySliceIterator.
 

Macros

#define BASE_class
 
#define NS_NAME   basi
 
#define RETURN_type1(IS_CONST)   Iterator<Rank<A>::value,V_S,IS_CONST>
 
#define ADDITIONAL_PARAMETER
 
#define ADDITIONAL_ARGUMENT
 
#define NS_NAME   basi_fast
 
#define RETURN_type1(IS_CONST)   Iterator<Rank<A>::value,V_S,IS_CONST>
 
#define ADDITIONAL_PARAMETER   , sd
 
#define ADDITIONAL_ARGUMENT   , const SlicesData<Rank<A>::value,V_S>& sd
 

Typedefs

template<int RANK, bool IS_CONST>
using blitzplusplus::basi::ttd::ConditionalConstCArray = typename tmptools::ConditionalAddConst< CArray< RANK >, IS_CONST >::type
 
template<typename V >
using blitzplusplus::basi::ttd::ResCArray = CArray< Size< V >::value >
 
template<typename V , bool IS_CONST>
using blitzplusplus::basi::ttd::ConditionalConstResCArray = ConditionalConstCArray< Size< V >::value, IS_CONST >
 
template<typename I , typename V , bool IS_CONST>
using blitzplusplus::basi::ttd::ForwardIteratorHelper = boost::forward_iterator_helper< I, ConditionalConstResCArray< V, IS_CONST > >
 
template<int RANK, typename V >
using blitzplusplus::basi::ttd::VecIdxTiny = IdxTiny< RANK-Size< V >::value >
 

Functions

template<int RANK, typename V >
const ttd::VecIdxTiny< RANK, V > blitzplusplus::basi::filterOut (const IdxTiny< RANK > &idx)
 Filters out the indices corresponding to a subsystem. More...
 

Detailed Description

Definition of blitzplusplus::basi::Iterator together with its helpers.

Definition in file BlitzArraySliceIterator.h.

Macro Definition Documentation

#define BASE_class
Value:
boost::mpl::if_c<RANK==1,\
details::BaseTrivial<V,IS_CONST>,\
typename boost::mpl::if_c<RANK==Size<V>::value,\
details::BaseSpecial<V,IS_CONST>,\
details::Base<RANK,V,IS_CONST>\
>::type\
>::type

Definition at line 236 of file BlitzArraySliceIterator.h.