OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
 
Loading...
Searching...
No Matches
openfpm::multi_array_ref_openfpm< T, NumDims, vector > Class Template Reference

Detailed Description

template<typename T, int NumDims, typename vector>
class openfpm::multi_array_ref_openfpm< T, NumDims, vector >

Definition at line 133 of file multi_array_ref_openfpm.hpp.

+ Inheritance diagram for openfpm::multi_array_ref_openfpm< T, NumDims, vector >:

Public Types

typedef super_type::reference reference
 
typedef super_type::iterator iterator
 
typedef super_type::const_reference const_reference
 
typedef super_type::const_iterator const_iterator
 
typedef super_type::element element
 
typedef super_type::size_type size_type
 
typedef super_type::index index
 
typedef super_type::storage_order_type storage_order_type
 
typedef super_type::index_list index_list
 
typedef int yes_is_multi_array
 indicate that this class is a multi dimensional array
 
- Public Types inherited from openfpm::const_multi_array_ref_openfpm< T, NumDims, vector, T * >
typedef super_type::const_reference const_reference
 
typedef super_type::const_iterator const_iterator
 
typedef T element
 
typedef size_t size_type
 
typedef super_type::index index
 
typedef general_storage_order< NumDims > storage_order_type
 
typedef openfpm::array< index, NumDims > index_list
 
- Public Types inherited from openfpm::detail::multi_array::multi_array_impl_base_openfpm< T, NumDims, vector >
typedef types::index index
 
typedef types::size_type size_type
 
typedef types::element element
 
typedef types::value_type value_type
 
typedef types::reference reference
 
typedef types::const_reference const_reference
 
typedef array_iterator_openfpm< T, T *, boost::mpl::size_t< NumDims >, vector, reference, boost::random_access_traversal_tag > iterator
 
typedef array_iterator_openfpm< T, T const *, boost::mpl::size_t< NumDims >, vector, const_reference, boost::random_access_traversal_tag > const_iterator
 
typedef ::boost::reverse_iterator< iteratorreverse_iterator
 
typedef ::boost::reverse_iterator< const_iteratorconst_reverse_iterator
 

Public Member Functions

template<class ExtentType >
 multi_array_ref_openfpm (T *base, const ExtentType r_sz, const general_storage_order< NumDims > &so)
 
template<typename ConstMultiArray >
multi_array_ref_openfpmoperator= (const ConstMultiArray &other)
 
multi_array_ref_openfpmoperator= (const multi_array_ref_openfpm &other)
 
multi_array_ref_openfpmbind_ref (const multi_array_ref_openfpm &other)
 
void set_pointer (void *base)
 
__device__ __host__ void * get_pointer ()
 
__device__ __host__ const void * get_pointer () const
 
multi_array_ref_openfpmoperator= (multi_array_ref_openfpm &&other)
 
void swap (multi_array_ref_openfpm &other)
 
__device__ __host__ element * origin ()
 
__device__ __host__ const element * origin () const
 
__device__ __host__ reference operator[] (index idx)
 
iterator begin ()
 
iterator end ()
 
__inline__ __device__ __host__ const_reference operator[] (index idx) const
 
const_iterator begin () const
 
const_iterator end () const
 
- Public Member Functions inherited from openfpm::const_multi_array_ref_openfpm< T, NumDims, vector, T * >
 const_multi_array_ref_openfpm (T * base, const ExtentType &extents, const general_storage_order< NumDims > &so)
 
void assign (InputIterator begin, InputIterator end)
 
size_type num_dimensions () const
 
size_type size () const
 
size_type max_size () const
 
bool empty () const
 
__device__ __host__ const index * strides () const
 
__device__ __host__ const element * origin () const
 
__device__ __host__ const element * data () const
 
size_type num_elements () const
 
const_iterator begin () const
 
const_iterator end () const
 
void set_base_ptr (T * new_base)
 
- Public Member Functions inherited from openfpm::detail::multi_array::multi_array_impl_base_openfpm< T, NumDims, vector >
 BOOST_STATIC_CONSTANT (std::size_t, dimensionality=NumDims)
 

Private Types

typedef const_multi_array_ref_openfpm< T, NumDims, vector, T * > super_type
 

Additional Inherited Members

- Data Fields inherited from openfpm::const_multi_array_ref_openfpm< T, NumDims, vector, T * >
T * base_
 
storage_order_type storage_
 
size_type extent_sz
 
size_type num_elements_
 
index_list stride_list_
 
- Protected Member Functions inherited from openfpm::detail::multi_array::multi_array_impl_base_openfpm< T, NumDims, vector >
template<typename Stride_list , typename Extent_type >
void compute_strides (Stride_list &stride_list, Extent_type &extent, const general_storage_order< NumDims > &storage)
 
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
 

Member Typedef Documentation

◆ const_iterator

template<typename T , int NumDims, typename vector >
typedef super_type::const_iterator openfpm::multi_array_ref_openfpm< T, NumDims, vector >::const_iterator

Definition at line 142 of file multi_array_ref_openfpm.hpp.

◆ const_reference

template<typename T , int NumDims, typename vector >
typedef super_type::const_reference openfpm::multi_array_ref_openfpm< T, NumDims, vector >::const_reference

Definition at line 141 of file multi_array_ref_openfpm.hpp.

◆ element

template<typename T , int NumDims, typename vector >
typedef super_type::element openfpm::multi_array_ref_openfpm< T, NumDims, vector >::element

Definition at line 144 of file multi_array_ref_openfpm.hpp.

◆ index

template<typename T , int NumDims, typename vector >
typedef super_type::index openfpm::multi_array_ref_openfpm< T, NumDims, vector >::index

Definition at line 147 of file multi_array_ref_openfpm.hpp.

◆ index_list

template<typename T , int NumDims, typename vector >
typedef super_type::index_list openfpm::multi_array_ref_openfpm< T, NumDims, vector >::index_list

Definition at line 151 of file multi_array_ref_openfpm.hpp.

◆ iterator

template<typename T , int NumDims, typename vector >
typedef super_type::iterator openfpm::multi_array_ref_openfpm< T, NumDims, vector >::iterator

Definition at line 139 of file multi_array_ref_openfpm.hpp.

◆ reference

template<typename T , int NumDims, typename vector >
typedef super_type::reference openfpm::multi_array_ref_openfpm< T, NumDims, vector >::reference

Definition at line 138 of file multi_array_ref_openfpm.hpp.

◆ size_type

template<typename T , int NumDims, typename vector >
typedef super_type::size_type openfpm::multi_array_ref_openfpm< T, NumDims, vector >::size_type

Definition at line 145 of file multi_array_ref_openfpm.hpp.

◆ storage_order_type

template<typename T , int NumDims, typename vector >
typedef super_type::storage_order_type openfpm::multi_array_ref_openfpm< T, NumDims, vector >::storage_order_type

Definition at line 150 of file multi_array_ref_openfpm.hpp.

◆ super_type

template<typename T , int NumDims, typename vector >
typedef const_multi_array_ref_openfpm<T,NumDims,vector,T *> openfpm::multi_array_ref_openfpm< T, NumDims, vector >::super_type
private

Definition at line 135 of file multi_array_ref_openfpm.hpp.

◆ yes_is_multi_array

template<typename T , int NumDims, typename vector >
typedef int openfpm::multi_array_ref_openfpm< T, NumDims, vector >::yes_is_multi_array

indicate that this class is a multi dimensional array

Definition at line 154 of file multi_array_ref_openfpm.hpp.

Constructor & Destructor Documentation

◆ multi_array_ref_openfpm()

template<typename T , int NumDims, typename vector >
template<class ExtentType >
openfpm::multi_array_ref_openfpm< T, NumDims, vector >::multi_array_ref_openfpm ( T *  base,
const ExtentType  r_sz,
const general_storage_order< NumDims > &  so 
)
inlineexplicit

Definition at line 159 of file multi_array_ref_openfpm.hpp.

Member Function Documentation

◆ begin() [1/2]

template<typename T , int NumDims, typename vector >
iterator openfpm::multi_array_ref_openfpm< T, NumDims, vector >::begin ( )
inline

Definition at line 282 of file multi_array_ref_openfpm.hpp.

◆ begin() [2/2]

template<typename T , int NumDims, typename vector >
const_iterator openfpm::multi_array_ref_openfpm< T, NumDims, vector >::begin ( ) const
inline

Definition at line 296 of file multi_array_ref_openfpm.hpp.

◆ bind_ref()

template<typename T , int NumDims, typename vector >
multi_array_ref_openfpm & openfpm::multi_array_ref_openfpm< T, NumDims, vector >::bind_ref ( const multi_array_ref_openfpm< T, NumDims, vector > &  other)
inline

Definition at line 195 of file multi_array_ref_openfpm.hpp.

◆ end() [1/2]

template<typename T , int NumDims, typename vector >
iterator openfpm::multi_array_ref_openfpm< T, NumDims, vector >::end ( )
inline

Definition at line 285 of file multi_array_ref_openfpm.hpp.

◆ end() [2/2]

template<typename T , int NumDims, typename vector >
const_iterator openfpm::multi_array_ref_openfpm< T, NumDims, vector >::end ( ) const
inline

Definition at line 299 of file multi_array_ref_openfpm.hpp.

◆ get_pointer() [1/2]

template<typename T , int NumDims, typename vector >
__device__ __host__ void * openfpm::multi_array_ref_openfpm< T, NumDims, vector >::get_pointer ( )
inline

Definition at line 223 of file multi_array_ref_openfpm.hpp.

◆ get_pointer() [2/2]

template<typename T , int NumDims, typename vector >
__device__ __host__ const void * openfpm::multi_array_ref_openfpm< T, NumDims, vector >::get_pointer ( ) const
inline

Definition at line 233 of file multi_array_ref_openfpm.hpp.

◆ operator=() [1/3]

template<typename T , int NumDims, typename vector >
template<typename ConstMultiArray >
multi_array_ref_openfpm & openfpm::multi_array_ref_openfpm< T, NumDims, vector >::operator= ( const ConstMultiArray &  other)
inline

Definition at line 166 of file multi_array_ref_openfpm.hpp.

◆ operator=() [2/3]

template<typename T , int NumDims, typename vector >
multi_array_ref_openfpm & openfpm::multi_array_ref_openfpm< T, NumDims, vector >::operator= ( const multi_array_ref_openfpm< T, NumDims, vector > &  other)
inline

Definition at line 181 of file multi_array_ref_openfpm.hpp.

◆ operator=() [3/3]

template<typename T , int NumDims, typename vector >
multi_array_ref_openfpm & openfpm::multi_array_ref_openfpm< T, NumDims, vector >::operator= ( multi_array_ref_openfpm< T, NumDims, vector > &&  other)
inline

Definition at line 238 of file multi_array_ref_openfpm.hpp.

◆ operator[]() [1/2]

template<typename T , int NumDims, typename vector >
__device__ __host__ reference openfpm::multi_array_ref_openfpm< T, NumDims, vector >::operator[] ( index  idx)
inline

Definition at line 272 of file multi_array_ref_openfpm.hpp.

◆ operator[]() [2/2]

template<typename T , int NumDims, typename vector >
__inline__ __device__ __host__ const_reference openfpm::multi_array_ref_openfpm< T, NumDims, vector >::operator[] ( index  idx) const
inline

Definition at line 288 of file multi_array_ref_openfpm.hpp.

◆ origin() [1/2]

template<typename T , int NumDims, typename vector >
__device__ __host__ element * openfpm::multi_array_ref_openfpm< T, NumDims, vector >::origin ( )
inline

Definition at line 268 of file multi_array_ref_openfpm.hpp.

◆ origin() [2/2]

template<typename T , int NumDims, typename vector >
__device__ __host__ const element * openfpm::multi_array_ref_openfpm< T, NumDims, vector >::origin ( ) const
inline

Definition at line 270 of file multi_array_ref_openfpm.hpp.

◆ set_pointer()

template<typename T , int NumDims, typename vector >
void openfpm::multi_array_ref_openfpm< T, NumDims, vector >::set_pointer ( void *  base)
inline

Definition at line 213 of file multi_array_ref_openfpm.hpp.

◆ swap()

template<typename T , int NumDims, typename vector >
void openfpm::multi_array_ref_openfpm< T, NumDims, vector >::swap ( multi_array_ref_openfpm< T, NumDims, vector > &  other)
inline

Definition at line 245 of file multi_array_ref_openfpm.hpp.


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