Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::multi_array< T, NumDims, Allocator > Class Template Reference

#include <multi_array.hpp>

Inheritance diagram for boost::multi_array< T, NumDims, Allocator >:
Collaboration diagram for boost::multi_array< T, NumDims, Allocator >:

Classes

struct  array_view
 
struct  const_array_view
 

Public Types

typedef super_type::value_type value_type
 
typedef super_type::reference reference
 
typedef super_type::const_reference const_reference
 
typedef super_type::iterator iterator
 
typedef super_type::const_iterator const_iterator
 
typedef
super_type::reverse_iterator 
reverse_iterator
 
typedef
super_type::const_reverse_iterator 
const_reverse_iterator
 
typedef super_type::element element
 
typedef super_type::size_type size_type
 
typedef super_type::difference_type difference_type
 
typedef super_type::index index
 
typedef super_type::extent_range extent_range
 
typedef
super_type::storage_order_type 
storage_order_type
 
typedef types::index_range index_range
 

Public Member Functions

 multi_array ()
 
template<class ExtentList >
 multi_array (ExtentList const &extents)
 
template<class ExtentList >
 multi_array (ExtentList const &extents, const general_storage_order< NumDims > &so)
 
template<class ExtentList >
 multi_array (ExtentList const &extents, const general_storage_order< NumDims > &so, Allocator const &alloc)
 
 multi_array (const detail::multi_array::extent_gen< NumDims > &ranges)
 
 multi_array (const detail::multi_array::extent_gen< NumDims > &ranges, const general_storage_order< NumDims > &so)
 
 multi_array (const detail::multi_array::extent_gen< NumDims > &ranges, const general_storage_order< NumDims > &so, Allocator const &alloc)
 
 multi_array (const multi_array &rhs)
 
template<typename OPtr >
 multi_array (const const_multi_array_ref< T, NumDims, OPtr > &rhs, const general_storage_order< NumDims > &so=c_storage_order())
 
template<typename OPtr >
 multi_array (const detail::multi_array::const_sub_array< T, NumDims, OPtr > &rhs, const general_storage_order< NumDims > &so=c_storage_order())
 
template<typename OPtr >
 multi_array (const detail::multi_array::const_multi_array_view< T, NumDims, OPtr > &rhs, const general_storage_order< NumDims > &so=c_storage_order())
 
 multi_array (const multi_array_ref< T, NumDims > &rhs)
 
 multi_array (const multi_array_ref< T, NumDims > &rhs, const general_storage_order< NumDims > &so)
 
 multi_array (const detail::multi_array::sub_array< T, NumDims > &rhs)
 
 multi_array (const detail::multi_array::sub_array< T, NumDims > &rhs, const general_storage_order< NumDims > &so)
 
 multi_array (const detail::multi_array::multi_array_view< T, NumDims > &rhs)
 
 multi_array (const detail::multi_array::multi_array_view< T, NumDims > &rhs, const general_storage_order< NumDims > &so)
 
template<typename ConstMultiArray >
multi_arrayoperator= (const ConstMultiArray &other)
 
multi_arrayoperator= (const multi_array &other)
 
template<typename ExtentList >
multi_arrayresize (const ExtentList &extents)
 
multi_arrayresize (const detail::multi_array::extent_gen< NumDims > &ranges)
 
 ~multi_array ()
 
elementorigin ()
 
const elementorigin () const
 
elementdata ()
 
const elementdata () const
 
template<class IndexList >
elementoperator() (const IndexList &indices)
 
template<class IndexList >
const elementoperator() (const IndexList &indices) const
 
const elementoperator() (IndexList indices) const
 
reference operator[] (index idx)
 
template<int NDims>
array_view< NDims >::type operator[] (const detail::multi_array::index_gen< NumDims, NDims > &indices)
 
const_reference operator[] (index idx) const
 
template<int NDims>
const_array_view< NDims >::type operator[] (const detail::multi_array::index_gen< NumDims, NDims > &indices) const
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
void assign (InputIterator begin, InputIterator end)
 
disable_if< typename
boost::is_integral< BaseList >
::type, void >::type 
reindex (const BaseList &values)
 
void reindex (index value)
 
void reshape (const SizeList &extents)
 
size_type num_dimensions () const
 
size_type size () const
 
size_type max_size () const
 
bool empty () const
 
const size_typeshape () const
 
const indexstrides () const
 
size_type num_elements () const
 
const indexindex_bases () const
 
const storage_order_typestorage_order () const
 
bool operator== (const const_multi_array_ref< T, NumDims, OPtr > &rhs) const
 
bool operator< (const const_multi_array_ref< T, NumDims, OPtr > &rhs) const
 
bool operator!= (const const_multi_array_ref< T, NumDims, OPtr > &rhs) const
 
bool operator> (const const_multi_array_ref< T, NumDims, OPtr > &rhs) const
 
bool operator<= (const const_multi_array_ref< T, NumDims, OPtr > &rhs) const
 
bool operator>= (const const_multi_array_ref< T, NumDims, OPtr > &rhs) const
 
 BOOST_STATIC_CONSTANT (std::size_t, dimensionality=NumDims)
 

Protected Member Functions

void set_base_ptr (T *new_base)
 
void init_multi_array_ref (InputIterator extents_iter)
 
template<typename Reference , typename IndexList , typename TPtr >
Reference access_element (boost::type< Reference >, const IndexList &indices, TPtr base, const size_type *extents, const index *strides, const index *index_bases) const
 
template<typename StrideList , typename ExtentList >
void compute_strides (StrideList &stride_list, ExtentList &extent_list, const general_storage_order< NumDims > &storage)
 
template<typename StrideList , typename ExtentList , typename BaseList >
index calculate_origin_offset (const StrideList &stride_list, const ExtentList &extent_list, const general_storage_order< NumDims > &storage, const BaseList &index_base_list)
 
template<typename StrideList , typename ExtentList >
index calculate_descending_dimension_offset (const StrideList &stride_list, const ExtentList &extent_list, const general_storage_order< NumDims > &storage)
 
template<typename StrideList , typename BaseList >
index calculate_indexing_offset (const StrideList &stride_list, const BaseList &index_base_list)
 
template<typename ArrayRef , int NDims, typename TPtr >
ArrayRef generate_array_view (boost::type< ArrayRef >, const boost::detail::multi_array::index_gen< NumDims, NDims > &indices, const size_type *extents, const index *strides, const index *index_bases, TPtr base) const
 

Protected Attributes

storage_order_type storage_
 
size_list extent_list_
 
index_list stride_list_
 
index_list index_base_list_
 
index origin_offset_
 
index directional_offset_
 
size_type num_elements_
 

Member Typedef Documentation

template<typename T, std::size_t NumDims, typename Allocator>
typedef super_type::const_iterator boost::multi_array< T, NumDims, Allocator >::const_iterator
template<typename T, std::size_t NumDims, typename Allocator>
typedef super_type::const_reference boost::multi_array< T, NumDims, Allocator >::const_reference
template<typename T, std::size_t NumDims, typename Allocator>
typedef super_type::const_reverse_iterator boost::multi_array< T, NumDims, Allocator >::const_reverse_iterator
template<typename T, std::size_t NumDims, typename Allocator>
typedef super_type::difference_type boost::multi_array< T, NumDims, Allocator >::difference_type
template<typename T, std::size_t NumDims, typename Allocator>
typedef super_type::element boost::multi_array< T, NumDims, Allocator >::element
template<typename T, std::size_t NumDims, typename Allocator>
typedef super_type::extent_range boost::multi_array< T, NumDims, Allocator >::extent_range
template<typename T, std::size_t NumDims, typename Allocator>
typedef super_type::index boost::multi_array< T, NumDims, Allocator >::index
template<typename T , std::size_t NumDims>
typedef types::index_range boost::detail::multi_array::multi_array_impl_base< T, NumDims >::index_range
inherited
template<typename T, std::size_t NumDims, typename Allocator>
typedef super_type::iterator boost::multi_array< T, NumDims, Allocator >::iterator
template<typename T, std::size_t NumDims, typename Allocator>
typedef super_type::reference boost::multi_array< T, NumDims, Allocator >::reference
template<typename T, std::size_t NumDims, typename Allocator>
typedef super_type::reverse_iterator boost::multi_array< T, NumDims, Allocator >::reverse_iterator
template<typename T, std::size_t NumDims, typename Allocator>
typedef super_type::size_type boost::multi_array< T, NumDims, Allocator >::size_type
template<typename T, std::size_t NumDims>
typedef super_type::storage_order_type boost::multi_array_ref< T, NumDims >::storage_order_type
inherited
template<typename T, std::size_t NumDims, typename Allocator>
typedef super_type::value_type boost::multi_array< T, NumDims, Allocator >::value_type

Constructor & Destructor Documentation

template<typename T, std::size_t NumDims, typename Allocator>
boost::multi_array< T, NumDims, Allocator >::multi_array ( )
inlineexplicit
template<typename T, std::size_t NumDims, typename Allocator>
template<class ExtentList >
boost::multi_array< T, NumDims, Allocator >::multi_array ( ExtentList const &  extents)
inlineexplicit
template<typename T, std::size_t NumDims, typename Allocator>
template<class ExtentList >
boost::multi_array< T, NumDims, Allocator >::multi_array ( ExtentList const &  extents,
const general_storage_order< NumDims > &  so 
)
inlineexplicit
template<typename T, std::size_t NumDims, typename Allocator>
template<class ExtentList >
boost::multi_array< T, NumDims, Allocator >::multi_array ( ExtentList const &  extents,
const general_storage_order< NumDims > &  so,
Allocator const &  alloc 
)
inlineexplicit
template<typename T, std::size_t NumDims, typename Allocator>
boost::multi_array< T, NumDims, Allocator >::multi_array ( const detail::multi_array< T, NumDims, Allocator >::extent_gen< NumDims > &  ranges)
inlineexplicit
template<typename T, std::size_t NumDims, typename Allocator>
boost::multi_array< T, NumDims, Allocator >::multi_array ( const detail::multi_array< T, NumDims, Allocator >::extent_gen< NumDims > &  ranges,
const general_storage_order< NumDims > &  so 
)
inlineexplicit
template<typename T, std::size_t NumDims, typename Allocator>
boost::multi_array< T, NumDims, Allocator >::multi_array ( const detail::multi_array< T, NumDims, Allocator >::extent_gen< NumDims > &  ranges,
const general_storage_order< NumDims > &  so,
Allocator const &  alloc 
)
inlineexplicit
template<typename T, std::size_t NumDims, typename Allocator>
boost::multi_array< T, NumDims, Allocator >::multi_array ( const multi_array< T, NumDims, Allocator > &  rhs)
inline
template<typename T, std::size_t NumDims, typename Allocator>
template<typename OPtr >
boost::multi_array< T, NumDims, Allocator >::multi_array ( const const_multi_array_ref< T, NumDims, OPtr > &  rhs,
const general_storage_order< NumDims > &  so = c_storage_order() 
)
inline
template<typename T, std::size_t NumDims, typename Allocator>
template<typename OPtr >
boost::multi_array< T, NumDims, Allocator >::multi_array ( const detail::multi_array< T, NumDims, Allocator >::const_sub_array< T, NumDims, OPtr > &  rhs,
const general_storage_order< NumDims > &  so = c_storage_order() 
)
inline
template<typename T, std::size_t NumDims, typename Allocator>
template<typename OPtr >
boost::multi_array< T, NumDims, Allocator >::multi_array ( const detail::multi_array< T, NumDims, Allocator >::const_multi_array_view< T, NumDims, OPtr > &  rhs,
const general_storage_order< NumDims > &  so = c_storage_order() 
)
inline
template<typename T, std::size_t NumDims, typename Allocator>
boost::multi_array< T, NumDims, Allocator >::multi_array ( const multi_array_ref< T, NumDims > &  rhs)
inline
template<typename T, std::size_t NumDims, typename Allocator>
boost::multi_array< T, NumDims, Allocator >::multi_array ( const multi_array_ref< T, NumDims > &  rhs,
const general_storage_order< NumDims > &  so 
)
inline
template<typename T, std::size_t NumDims, typename Allocator>
boost::multi_array< T, NumDims, Allocator >::multi_array ( const detail::multi_array< T, NumDims, Allocator >::sub_array< T, NumDims > &  rhs)
inline
template<typename T, std::size_t NumDims, typename Allocator>
boost::multi_array< T, NumDims, Allocator >::multi_array ( const detail::multi_array< T, NumDims, Allocator >::sub_array< T, NumDims > &  rhs,
const general_storage_order< NumDims > &  so 
)
inline
template<typename T, std::size_t NumDims, typename Allocator>
boost::multi_array< T, NumDims, Allocator >::multi_array ( const detail::multi_array< T, NumDims, Allocator >::multi_array_view< T, NumDims > &  rhs)
inline
template<typename T, std::size_t NumDims, typename Allocator>
boost::multi_array< T, NumDims, Allocator >::multi_array ( const detail::multi_array< T, NumDims, Allocator >::multi_array_view< T, NumDims > &  rhs,
const general_storage_order< NumDims > &  so 
)
inline
template<typename T, std::size_t NumDims, typename Allocator>
boost::multi_array< T, NumDims, Allocator >::~multi_array ( )
inline

Member Function Documentation

template<typename T, std::size_t NumDims>
const_iterator boost::multi_array_ref< T, NumDims >::begin ( void  ) const
inlineinherited
template<typename T , std::size_t NumDims>
boost::detail::multi_array::multi_array_impl_base< T, NumDims >::BOOST_STATIC_CONSTANT ( std::size_t  ,
dimensionality  = NumDims 
)
inherited
template<typename T , std::size_t NumDims>
template<typename StrideList , typename ExtentList >
index boost::detail::multi_array::multi_array_impl_base< T, NumDims >::calculate_descending_dimension_offset ( const StrideList &  stride_list,
const ExtentList &  extent_list,
const general_storage_order< NumDims > &  storage 
)
inlineprotectedinherited
template<typename T , std::size_t NumDims>
template<typename StrideList , typename BaseList >
index boost::detail::multi_array::multi_array_impl_base< T, NumDims >::calculate_indexing_offset ( const StrideList &  stride_list,
const BaseList &  index_base_list 
)
inlineprotectedinherited
template<typename T , std::size_t NumDims>
template<typename StrideList , typename ExtentList , typename BaseList >
index boost::detail::multi_array::multi_array_impl_base< T, NumDims >::calculate_origin_offset ( const StrideList &  stride_list,
const ExtentList &  extent_list,
const general_storage_order< NumDims > &  storage,
const BaseList &  index_base_list 
)
inlineprotectedinherited
template<typename T , std::size_t NumDims>
template<typename StrideList , typename ExtentList >
void boost::detail::multi_array::multi_array_impl_base< T, NumDims >::compute_strides ( StrideList &  stride_list,
ExtentList &  extent_list,
const general_storage_order< NumDims > &  storage 
)
inlineprotectedinherited
template<typename T, std::size_t NumDims>
element* boost::multi_array_ref< T, NumDims >::data ( )
inlineinherited
template<typename T, std::size_t NumDims>
const element* boost::multi_array_ref< T, NumDims >::data ( ) const
inlineinherited
bool boost::const_multi_array_ref< T, NumDims, T * >::empty ( void  ) const
inlineinherited
template<typename T, std::size_t NumDims>
const_iterator boost::multi_array_ref< T, NumDims >::end ( void  ) const
inlineinherited
size_type boost::const_multi_array_ref< T, NumDims, T * >::max_size ( void  ) const
inlineinherited
size_type boost::const_multi_array_ref< T, NumDims, T * >::num_dimensions ( ) const
inlineinherited
size_type boost::const_multi_array_ref< T, NumDims, T * >::num_elements ( ) const
inlineinherited
bool boost::const_multi_array_ref< T, NumDims, T * >::operator!= ( const const_multi_array_ref< T, NumDims, OPtr > &  rhs) const
inlineinherited
template<typename T, std::size_t NumDims>
template<class IndexList >
const element& boost::multi_array_ref< T, NumDims >::operator() ( const IndexList &  indices) const
inlineinherited
bool boost::const_multi_array_ref< T, NumDims, T * >::operator<= ( const const_multi_array_ref< T, NumDims, OPtr > &  rhs) const
inlineinherited
template<typename T, std::size_t NumDims, typename Allocator>
template<typename ConstMultiArray >
multi_array& boost::multi_array< T, NumDims, Allocator >::operator= ( const ConstMultiArray &  other)
inline
template<typename T, std::size_t NumDims, typename Allocator>
multi_array& boost::multi_array< T, NumDims, Allocator >::operator= ( const multi_array< T, NumDims, Allocator > &  other)
inline
bool boost::const_multi_array_ref< T, NumDims, T * >::operator> ( const const_multi_array_ref< T, NumDims, OPtr > &  rhs) const
inlineinherited
bool boost::const_multi_array_ref< T, NumDims, T * >::operator>= ( const const_multi_array_ref< T, NumDims, OPtr > &  rhs) const
inlineinherited
template<typename T, std::size_t NumDims>
template<int NDims>
const_array_view<NDims>::type boost::multi_array_ref< T, NumDims >::operator[] ( const detail::multi_array::index_gen< NumDims, NDims > &  indices) const
inlineinherited
template<typename T, std::size_t NumDims>
const element* boost::multi_array_ref< T, NumDims >::origin ( ) const
inlineinherited
template<typename T, std::size_t NumDims>
reverse_iterator boost::multi_array_ref< T, NumDims >::rbegin ( )
inlineinherited
template<typename T, std::size_t NumDims>
const_reverse_iterator boost::multi_array_ref< T, NumDims >::rbegin ( ) const
inlineinherited
template<typename T, std::size_t NumDims>
reverse_iterator boost::multi_array_ref< T, NumDims >::rend ( )
inlineinherited
template<typename T, std::size_t NumDims>
const_reverse_iterator boost::multi_array_ref< T, NumDims >::rend ( ) const
inlineinherited
template<typename T, std::size_t NumDims, typename Allocator>
template<typename ExtentList >
multi_array& boost::multi_array< T, NumDims, Allocator >::resize ( const ExtentList &  extents)
inline
void boost::const_multi_array_ref< T, NumDims, T * >::set_base_ptr ( T new_base)
inlineprotectedinherited

Member Data Documentation

index boost::const_multi_array_ref< T, NumDims, T * >::directional_offset_
protectedinherited
size_list boost::const_multi_array_ref< T, NumDims, T * >::extent_list_
protectedinherited
index_list boost::const_multi_array_ref< T, NumDims, T * >::index_base_list_
protectedinherited
size_type boost::const_multi_array_ref< T, NumDims, T * >::num_elements_
protectedinherited
index_list boost::const_multi_array_ref< T, NumDims, T * >::stride_list_
protectedinherited

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