CAPD RedHom Library
capd::homAux::impl::MultiArrayIndexerBase< IndexerT > Class Template Reference

#include <capd/homAux/MultiArrayIndexer.h>

Classes

struct  View
 

Public Types

typedef IndexerT Indexer
 
typedef Indexer::element::value_type value_type
 
typedef value_type Value
 
typedef Indexer::index Index
 
typedef Indexer::index_gen IndexGen
 
typedef IndexGen::template gen_type< DIM, DIM >::type IndexGenFull
 
typedef Indexer::index_range IndexRange
 
typedef Indexer::size_type SizeType
 
typedef boost::array< Index, DIMCoordinates
 

Public Member Functions

 MultiArrayIndexerBase (const Indexer &indexer)
 
SizeType size () const
 
boost::iterator_range< const SizeType * > shape () const
 
boost::iterator_range< const Index * > strides () const
 
SizeType dim () const
 
IndexGen indices () const
 
IndexRange range () const
 
IndexRange range (Index b, Index e) const
 
template<typename Indices >
Value operator() (const Indices &indices) const
 
Value operator() (std::initializer_list< Index > indices) const
 
template<typename Indices >
bool isInside (const Indices &indices) const
 
template<typename Indices >
bool isValid (const Indices &indices) const
 
template<int NDims>
View< NDims >::type operator[] (const boost::detail::multi_array::index_gen< DIM, NDims > &indices) const
 
template<typename Function >
void forEach (Function f) const
 
template<typename Ranges , typename Function >
void apply (const Ranges &ranges, Function function) const
 
template<typename Callback >
void all (Callback cb, typename boost::result_of< Callback(Value, const Coordinates &)>::type *p=0) const
 
template<typename Callback >
void all (Callback cb, typename boost::result_of< Callback(Value)>::type *p=0) const
 

Static Public Attributes

static const std::size_t DIM = Indexer::dimensionality
 

Protected Attributes

Indexer _indexer
 
 CAPD_CLASS_LOGGER
 

Member Typedef Documentation

template<typename IndexerT>
typedef boost::array<Index, DIM> capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::Coordinates
template<typename IndexerT>
typedef Indexer::index capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::Index
template<typename IndexerT>
typedef IndexerT capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::Indexer
template<typename IndexerT>
typedef Indexer::index_gen capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::IndexGen
template<typename IndexerT>
typedef IndexGen::template gen_type<DIM, DIM>::type capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::IndexGenFull
template<typename IndexerT>
typedef Indexer::index_range capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::IndexRange
template<typename IndexerT>
typedef Indexer::size_type capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::SizeType
template<typename IndexerT>
typedef value_type capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::Value
template<typename IndexerT>
typedef Indexer::element::value_type capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::value_type

Constructor & Destructor Documentation

template<typename IndexerT>
capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::MultiArrayIndexerBase ( const Indexer indexer)
inline

Member Function Documentation

template<typename IndexerT>
template<typename Callback >
void capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::all ( Callback  cb,
typename boost::result_of< Callback(Value, const Coordinates &)>::type *  p = 0 
) const
inline
template<typename IndexerT>
template<typename Callback >
void capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::all ( Callback  cb,
typename boost::result_of< Callback(Value)>::type *  p = 0 
) const
inline
template<typename IndexerT>
template<typename Ranges , typename Function >
void capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::apply ( const Ranges &  ranges,
Function  function 
) const
inline
template<typename IndexerT>
SizeType capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::dim ( ) const
inline
template<typename IndexerT>
template<typename Function >
void capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::forEach ( Function  f) const
inline
template<typename IndexerT>
IndexGen capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::indices ( ) const
inline
template<typename IndexerT>
template<typename Indices >
bool capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::isInside ( const Indices &  indices) const
inline
template<typename IndexerT>
template<typename Indices >
bool capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::isValid ( const Indices &  indices) const
inline
template<typename IndexerT>
template<typename Indices >
Value capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::operator() ( const Indices &  indices) const
inline
template<typename IndexerT>
Value capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::operator() ( std::initializer_list< Index indices) const
inline
template<typename IndexerT>
template<int NDims>
View<NDims>::type capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::operator[] ( const boost::detail::multi_array::index_gen< DIM, NDims > &  indices) const
inline
template<typename IndexerT>
IndexRange capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::range ( ) const
inline
template<typename IndexerT>
IndexRange capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::range ( Index  b,
Index  e 
) const
inline
template<typename IndexerT>
boost::iterator_range<const SizeType *> capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::shape ( ) const
inline
template<typename IndexerT>
SizeType capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::size ( ) const
inline
template<typename IndexerT>
boost::iterator_range<const Index *> capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::strides ( ) const
inline

Member Data Documentation

template<typename IndexerT>
Indexer capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::_indexer
protected
template<typename IndexerT>
capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::CAPD_CLASS_LOGGER
protected
template<typename IndexerT>
const std::size_t capd::homAux::impl::MultiArrayIndexerBase< IndexerT >::DIM = Indexer::dimensionality
static