35 #include "../backends.h"
36 #include "../decorators.h"
86 : storage(storage), storage_size(storage_size)
91 template <target_system other_system,
typename other_value_type>
94 if (system == other_system)
105 template <
typename other_po
inter>
120 template <target_system other_system,
typename other_value_type>
123 if (system == other_system)
275 typename _index_type =
uint32>
316 template <
typename T,
317 typename _index_type>
399 template <
typename T,
400 typename _index_type>
465 return storage_read(pos);
const T & const_reference_type
base::value_type value_type
const T * const_pointer_type
LIFT_HOST_DEVICE const_reference_type operator[](size_type pos) const
LIFT_HOST_DEVICE tagged_pointer_base()
The default constructor initializes the pointer to null.
base::iterator_type iterator_type
base::reference_type reference_type
LIFT_HOST_DEVICE pointer range(const size_type offset, size_type len=size_type(-1)) const
base::const_reference_type const_reference_type
base::const_iterator_type const_iterator_type
LIFT_HOST_DEVICE tagged_pointer_base & operator=(tagged_pointer_base< other_system, other_value_type, index_type > &other)
Copy constructor creates a copy of the pointer.
LIFT_HOST_DEVICE pointer range(const size_type offset, size_type len=size_type(-1)) const
LIFT_HOST_DEVICE thrust_const_iterator_type t_begin() const
Returns a Thrust-compatible iterator pointing at the base address of the pointer. ...
LIFT_HOST_DEVICE pointer truncate(size_t new_size)
LIFT_HOST_DEVICE iterator_type begin()
LIFT_HOST_DEVICE thrust_iterator_type t_begin()
Returns a Thrust-compatible iterator pointing at the base address of the pointer. ...
tagged_pointer_base< cuda, T, _index_type > base
base::const_iterator_type const_iterator_type
LIFT_HOST_DEVICE pointer operator+(off_t offset) const
LIFT_HOST_DEVICE const_reference_type front() const
LIFT_HOST_DEVICE pointer operator-(off_t offset) const
LIFT_HOST_DEVICE pointer range(const size_type offset, size_type len=size_type(-1)) const
Base class for tagged memory pointer implementation.
tagged_pointer_base< host, T, _index_type > base
base::value_type value_type
LIFT_HOST_DEVICE pointer operator-(off_t offset) const
LIFT_HOST_DEVICE const_reference_type at(size_type pos) const
base::size_type size_type
value_type peek(const size_type pos) const
base::reference_type reference_type
LIFT_HOST_DEVICE reference_type back()
LIFT_HOST_DEVICE bool empty() const
LIFT_HOST_DEVICE pointer_type data() const
LIFT_HOST_DEVICE pointer operator+(off_t offset) const
base::size_type size_type
base::iterator_type iterator_type
value_type peek(index_type pos)
const T * const_iterator_type
base::const_reference_type const_reference_type
LIFT_HOST_DEVICE pointer truncate(size_t new_size)
base::value_type value_type
LIFT_HOST_DEVICE tagged_pointer_base(T *storage, size_type storage_size)
Construct a tagged pointer from a raw pointer.
base::const_iterator_type const_iterator_type
LIFT_HOST_DEVICE reference_type at(size_type pos)
LIFT_HOST_DEVICE const_iterator_type begin() const
value_type peek(index_type pos) const
LIFT_HOST_DEVICE pointer operator+(off_t offset) const
base::index_type index_type
Lift's tagged pointer class.
LIFT_HOST_DEVICE pointer operator-(off_t offset) const
void poke(const size_type pos, const value_type value)
base::index_type index_type
LIFT_HOST_DEVICE size_type size() const
base::size_type size_type
thrust_iterator_adaptor< system, value_type, iterator_type > thrust_iterator_type
Thrust-compatible iterator types.
thrust_iterator_adaptor< system, value_type, const_iterator_type > thrust_const_iterator_type
LIFT_HOST_DEVICE thrust_const_iterator_type t_end() const
Returns a Thrust-compatible iterator pointing at the end of the memory region covered by this pointer...
base::reference_type reference_type
base::iterator_type iterator_type
LIFT_HOST_DEVICE const_reference_type back() const
void poke(index_type pos, const value_type value)
base::const_reference_type const_reference_type
LIFT_HOST_DEVICE pointer truncate(size_t new_size)
LIFT_HOST_DEVICE tagged_pointer_base(other_pointer &other)
base::index_type index_type
LIFT_HOST_DEVICE tagged_pointer_base(tagged_pointer_base< other_system, other_value_type, index_type > &other)
Copy constructor creates a copy of the pointer.
LIFT_HOST_DEVICE const_iterator_type cend() const
tagged_pointer_base< host, T, _index_type > base
LIFT_HOST_DEVICE thrust_iterator_type t_end()
Returns a Thrust-compatible iterator pointing at the end of the memory region covered by this pointer...
value_type storage_read(size_type pos) const
void poke(index_type pos, const value_type value)
LIFT_HOST_DEVICE iterator_type end()
LIFT_HOST_DEVICE reference_type front()
LIFT_HOST_DEVICE const_iterator_type cbegin() const
LIFT_HOST_DEVICE const_iterator_type end() const
index_type difference_type