primarily used as result of ndarray::operator[] More...
#include <ndarray.hpp>
Public Member Functions | |
ndarray_view (const boost::shared_ptr< allocator > &allocator) | |
default constructor does nothing | |
ndarray_view & | assign (const ndarray< V, M, L > &o, cudaStream_t stream=0) |
/always/ try to copy memory | |
ndarray_view & | assign (const ndarray_view< V, M, L > &o, cudaStream_t stream=0) |
/always/ try to copy memory | |
template<class OM > | |
ndarray_view & | assign (const ndarray< V, OM, L > &o, cudaStream_t stream=0) |
assignment operator for other memory space type | |
template<class OM > | |
ndarray_view & | assign (const ndarray_view< V, OM, L > &o, cudaStream_t stream=0) |
assignment operator for views in other memory space types | |
ndarray_view & | operator= (const ndarray< V, M, L > &o) |
/always/ try to copy memory | |
ndarray_view & | operator= (const ndarray_view< V, M, L > &o) |
/always/ try to copy memory | |
template<class _V > | |
boost::enable_if_c < boost::is_convertible< _V, V > ::value, ndarray_view & > ::type | operator= (const _V &scalar) |
assign from value (sets all elements equal to one scalar) | |
template<class OM > | |
ndarray_view & | operator= (const ndarray< V, OM, L > &o) |
assignment operator for other memory space type | |
template<class OM > | |
ndarray_view & | operator= (const ndarray_view< V, OM, L > &o) |
assignment operator for views in other memory space types | |
template<int D, int E> | |
ndarray_view (const ndarray< V, M, L > &o, const index_gen< D, E > &idx) | |
construct ndarray_view | |
template<int D, int E> | |
ndarray_view (const index_gen< D, E > &idx, const ndarray< V, M, L > &o) | |
different order of arguments as above, all else being equal. | |
Public Member Functions inherited from cuv::ndarray< V, M, L > | |
template<size_t D> | |
size_type | index_of (const extent_gen< D > &eg) const |
determine linear index in memory of an index array | |
template<class T > | |
ndarray | copy (T tag=linear_memory_tag(), cudaStream_t stream=0) const |
copy memory using given allocator tag (linear/pitched) | |
ndarray | copy () const |
copy memory using linear memory | |
template<int D, int E> | |
ndarray_view< V, M, L > | operator[] (const index_gen< D, E > &idx) const |
create a sub-ndarray of the current ndarray | |
template<size_t D> | |
void | reshape (const extent_gen< D > &eg) |
reshape the ndarray (in place) | |
void | reshape (const std::vector< size_type > &shape) |
reshape the ndarray (in place) | |
void | reshape (size_type r, size_type c) |
convenience wrapper for reshape(extents[r][c]) | |
void | resize (const std::vector< size_type > &shape) |
resize the ndarray (deallocates memory if product changes, otherwise equivalent to reshape) | |
template<size_t D> | |
void | resize (const extent_gen< D > &eg) |
resize the ndarray (deallocates memory if product changes, otherwise equivalent to reshape) | |
void | resize (size_type size) |
convenience wrapper for resize(extents[size]) | |
void | resize (size_type r, size_type c) |
convenience wrapper for resize(extents[r][c]) | |
void | dealloc () |
force deallocation of memory if possible | |
template<class OM , class OL > | |
bool | copy_memory (const ndarray< V, OM, OL > &src, bool force_dst_contiguous, cudaStream_t stream) |
tries to copy memory, succeeds if shapes match AND both ndarrays are c_contiguous or 2d-copyable. | |
template<class OM , class OL > | |
void | copy_memory (const ndarray< V, OM, OL > &src, linear_memory_tag, cudaStream_t stream) |
copies between different memory spaces | |
template<class OM , class OL > | |
void | copy_memory (const ndarray< V, OM, OL > &src, pitched_memory_tag, cudaStream_t stream) |
copies between different memory spaces | |
index_type | ndim () const |
return the number of dimensions | |
size_type | shape (const size_t i) const |
return the size of the i-th dimension | |
index_type | stride (const size_t i) const |
return the stride of the i-th dimension | |
V * | ptr () |
const V * | ptr () const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
void | set_ptr_offset (long int i) |
set the pointer offset (used in deserialization) | |
boost::shared_ptr< memory_type > & | mem () |
const boost::shared_ptr < memory_type > & | mem () const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
size_type | size () const |
size_type | memsize () const |
determine size in bytes | |
std::vector< size_type > | shape () const |
return the shape of the ndarray (as a vector for backward compatibility) | |
std::vector< size_type > | effective_shape () const |
return the effective shape of the ndarray (as a vector for backward compatibility) | |
const info_type & | info () const |
info_type & | info () |
bool | is_c_contiguous () const |
true iff there are no "holes" in memory | |
bool | is_2dcopyable () const |
true iff it can be copied as a 2d array (only one dimension is pitched) | |
reference_type | operator[] (index_type idx) |
member access: "flat" access as if memory was linear | |
const_reference_type | operator[] (index_type idx) const |
reference_type | operator() (index_type i0) |
get a reference to the datum at an index | |
const_reference_type | operator() (index_type i0) const |
const_reference_type | operator() (index_type i0, index_type i1) const |
reference_type | operator() (index_type i0, index_type i1) |
const_reference_type | operator() (index_type i0, index_type i1, index_type i2) const |
reference_type | operator() (index_type i0, index_type i1, index_type i2) |
const_reference_type | operator() (index_type i0, index_type i1, index_type i2, index_type i3) const |
reference_type | operator() (index_type i0, index_type i1, index_type i2, index_type i3) |
const_reference_type | operator() (index_type i0, index_type i1, index_type i2, index_type i3, index_type i4) const |
reference_type | operator() (index_type i0, index_type i1, index_type i2, index_type i3, index_type i4) |
ndarray (const boost::shared_ptr< allocator > _allocator=boost::make_shared< default_allocator >()) | |
default constructor (does nothing) | |
ndarray (const ndarray &o) | |
construct ndarray from ndarray of exact same type | |
template<class OM > | |
ndarray (const ndarray< value_type, OM, L > &o, cudaStream_t stream=0) | |
construct ndarray from ndarray of other memory space in (dense) /linear/ memory. | |
ndarray (const ndarray &o, pitched_memory_tag, cudaStream_t stream=0) | |
construct ndarray from ndarray of same memory space in /pitched/ memory. | |
template<class OM > | |
ndarray (const ndarray< value_type, OM, L > &o, pitched_memory_tag, cudaStream_t stream=0) | |
construct ndarray from ndarray of other memory space in /pitched/ memory. | |
ndarray (const ndarray &o, linear_memory_tag, cudaStream_t stream=0) | |
construct ndarray from ndarray of same memory space in (dense) /linear/ memory. | |
template<class OM > | |
ndarray (const ndarray< value_type, OM, L > &o, linear_memory_tag, cudaStream_t stream=0) | |
construct ndarray from ndarray of other memory space in (dense) /linear/ memory. | |
template<class OL > | |
ndarray (const ndarray< value_type, M, OL > &o) | |
construct ndarray from other memory layout | |
ndarray (const size_type i, const boost::shared_ptr< allocator > _allocator=boost::make_shared< default_allocator >()) | |
construct one-dimensional ndarray | |
ndarray (const size_type i, const int j, const boost::shared_ptr< allocator > _allocator=boost::make_shared< default_allocator >()) | |
construct two-dimensional ndarray | |
template<size_t D> | |
ndarray (const extent_gen< D > &eg, const boost::shared_ptr< allocator > _allocator=boost::make_shared< default_allocator >()) | |
construct ndarray from a shape | |
ndarray (const std::vector< size_type > &eg, const boost::shared_ptr< allocator > _allocator=boost::make_shared< default_allocator >()) | |
construct ndarray from a shape | |
ndarray (const std::vector< size_type > &eg, pitched_memory_tag, const boost::shared_ptr< allocator > _allocator=boost::make_shared< default_allocator >()) | |
construct ndarray from a shape | |
template<size_t D> | |
ndarray (const extent_gen< D > &eg, pitched_memory_tag, const boost::shared_ptr< allocator > _allocator=boost::make_shared< default_allocator >()) | |
construct ndarray from a shape (pitched) | |
template<size_t D> | |
ndarray (const extent_gen< D > &eg, value_type *ptr, const boost::shared_ptr< allocator > _allocator=boost::make_shared< default_allocator >()) | |
construct ndarray from a shape and a pointer (does not copy memory) | |
ndarray (const std::vector< size_type > &shape, value_type *ptr, const boost::shared_ptr< allocator > _allocator=boost::make_shared< default_allocator >()) | |
template<int D, int E> | |
ndarray (const index_gen< D, E > &idx, value_type *ptr, const boost::shared_ptr< allocator > _allocator=boost::make_shared< default_allocator >()) | |
construct ndarray from a shape and a pointer (does not copy memory) | |
template<class _M , class _L > | |
ndarray & | assign (const ndarray< V, _M, _L > &o, cudaStream_t stream=0) |
explicitly assign by copying memory | |
template<class OM > | |
ndarray & | assign (const ndarray< value_type, OM, L > &o, cudaStream_t stream=0) |
assign from ndarray of different memory space type. | |
template<class OM > | |
ndarray & | operator= (const ndarray< value_type, OM, L > &o) |
assign from ndarray of different memory space type. | |
template<class OL > | |
ndarray & | operator= (const ndarray< value_type, M, OL > &o) |
assign from ndarray of different memory layout type. |
Friends | |
class | ndarray |
Additional Inherited Members | |
Public Types inherited from cuv::ndarray< V, M, L > | |
typedef memory< V, M > | memory_type |
type of stored memory | |
typedef memory_type::reference_type | reference_type |
values returned by operator() and [] | |
typedef memory_type::const_reference_type | const_reference_type |
values returned by operator() | |
typedef memory_type::memory_space_type | memory_space_type |
dev/host | |
typedef memory_type::value_type | value_type |
type of stored values | |
typedef memory_type::size_type | size_type |
type shapes | |
typedef memory_type::index_type | index_type |
type strides | |
typedef L | memory_layout_type |
column/row major | |
typedef ndarray_info< M, L > | info_type |
type of shape info struct | |
typedef ndarray_view< V, M, L > | view_type |
type of views on this ndarray | |
Public Attributes inherited from cuv::ndarray< V, M, L > | |
boost::shared_ptr< allocator > | m_allocator |
Protected Member Functions inherited from cuv::ndarray< V, M, L > | |
size_type | index_of (int D, index_type *arr) const |
determine linear index in memory of an index array | |
void | allocate (ndarray &t, linear_memory_tag) |
allocate linear memory (c-contiguous version) | |
void | allocate (ndarray &t, pitched_memory_tag) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. pitched version. | |
Protected Attributes inherited from cuv::ndarray< V, M, L > | |
info_type | m_info |
information about shape, strides | |
boost::shared_ptr< memory_type > | m_memory |
points to (possibly shared) memory | |
V * | m_ptr |
points to start of actually referenced memory (within m_memory) |
primarily used as result of ndarray::operator[]
Definition at line 1243 of file ndarray.hpp.
|
inlineexplicit |
construct ndarray_view
idx | the indices of the sub-ndarray |
o | the original ndarray |
Example:
Definition at line 1377 of file ndarray.hpp.
|
inlineexplicit |
different order of arguments as above, all else being equal.
idx | a set of index ranges into o |
o | other ndarray |
Definition at line 1420 of file ndarray.hpp.
|
inline |
assignment operator for other memory space type
o | a ndarray of another memory space type |
Definition at line 1285 of file ndarray.hpp.
|
inline |
assignment operator for views in other memory space types
o | a ndarray_view of another memory space type |
Definition at line 1297 of file ndarray.hpp.
|
inline |
assign from value (sets all elements equal to one scalar)
scalar | value which should be assigned to all elements |
Reimplemented from cuv::ndarray< V, M, L >.
Definition at line 1323 of file ndarray.hpp.
|
inline |
assignment operator for other memory space type
o | a ndarray of another memory space type |
Definition at line 1335 of file ndarray.hpp.
|
inline |
assignment operator for views in other memory space types
o | a ndarray_view of another memory space type |
Definition at line 1345 of file ndarray.hpp.