Fermat
Public Types | Public Methods | Public Members | List of all members
cugar::cuda::load_pointer< T, MOD > Struct Template Reference

Detailed description

template<typename T, CacheLoadModifier MOD>
struct cugar::cuda::load_pointer< T, MOD >

Wrapper class to create a cub::ThreadLoad iterator out of a raw pointer

#include <pointers.h>

Public Types

typedef T value_type
 
typedef value_type reference
 
typedef value_type const_reference
 
typedef value_type * pointer
 
typedef std::iterator_traits< const T * >::difference_type difference_type
 
typedef std::random_access_iterator_tag iterator_category
 

Public Methods

CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer ()
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer (const T *base)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer (const load_pointer &it)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE value_type operator[] (const uint32 i) const
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE value_type operator* () const
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer< T, MOD > & operator++ ()
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer< T, MOD > operator++ (int i)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer< T, MOD > & operator-- ()
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer< T, MOD > operator-- (int i)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer< T, MOD > operator+ (const difference_type i) const
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer< T, MOD > operator- (const difference_type i) const
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer< T, MOD > & operator+= (const difference_type i)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer< T, MOD > & operator-= (const difference_type i)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE difference_type operator- (const load_pointer< T, MOD > it) const
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointeroperator= (const load_pointer< T, MOD > &it)
 

Public Members

const T * m_base
 

Constructor & Destructor Documentation

◆ load_pointer() [1/3]

template<typename T, CacheLoadModifier MOD>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE cugar::cuda::load_pointer< T, MOD >::load_pointer ( )
inline

constructor

◆ load_pointer() [2/3]

template<typename T, CacheLoadModifier MOD>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE cugar::cuda::load_pointer< T, MOD >::load_pointer ( const T *  base)
inline

constructor

◆ load_pointer() [3/3]

template<typename T, CacheLoadModifier MOD>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE cugar::cuda::load_pointer< T, MOD >::load_pointer ( const load_pointer< T, MOD > &  it)
inline

copy constructor

Member Function Documentation

◆ operator*()

template<typename T, CacheLoadModifier MOD>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE value_type cugar::cuda::load_pointer< T, MOD >::operator* ( ) const
inline

dereference operator

◆ operator+()

template<typename T, CacheLoadModifier MOD>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer<T,MOD> cugar::cuda::load_pointer< T, MOD >::operator+ ( const difference_type  i) const
inline

addition

◆ operator++() [1/2]

template<typename T, CacheLoadModifier MOD>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer<T,MOD>& cugar::cuda::load_pointer< T, MOD >::operator++ ( )
inline

pre-increment

◆ operator++() [2/2]

template<typename T, CacheLoadModifier MOD>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer<T,MOD> cugar::cuda::load_pointer< T, MOD >::operator++ ( int  i)
inline

post-increment

◆ operator+=()

template<typename T, CacheLoadModifier MOD>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer<T,MOD>& cugar::cuda::load_pointer< T, MOD >::operator+= ( const difference_type  i)
inline

addition

◆ operator-() [1/2]

template<typename T, CacheLoadModifier MOD>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer<T,MOD> cugar::cuda::load_pointer< T, MOD >::operator- ( const difference_type  i) const
inline

subtraction

◆ operator-() [2/2]

template<typename T, CacheLoadModifier MOD>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE difference_type cugar::cuda::load_pointer< T, MOD >::operator- ( const load_pointer< T, MOD >  it) const
inline

iterator subtraction

◆ operator--() [1/2]

template<typename T, CacheLoadModifier MOD>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer<T,MOD>& cugar::cuda::load_pointer< T, MOD >::operator-- ( )
inline

pre-decrement

◆ operator--() [2/2]

template<typename T, CacheLoadModifier MOD>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer<T,MOD> cugar::cuda::load_pointer< T, MOD >::operator-- ( int  i)
inline

post-decrement

◆ operator-=()

template<typename T, CacheLoadModifier MOD>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer<T,MOD>& cugar::cuda::load_pointer< T, MOD >::operator-= ( const difference_type  i)
inline

subtraction

◆ operator=()

template<typename T, CacheLoadModifier MOD>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE load_pointer& cugar::cuda::load_pointer< T, MOD >::operator= ( const load_pointer< T, MOD > &  it)
inline

assignment

◆ operator[]()

template<typename T, CacheLoadModifier MOD>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE value_type cugar::cuda::load_pointer< T, MOD >::operator[] ( const uint32  i) const
inline

const indexing operator


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