ViennaCL - The Vienna Computing Library
1.5.2
|
Class for representing strided subvectors of a bigger vector x. More...
#include <forwards.h>
Public Types | |
typedef VectorType::value_type | value_type |
typedef slice::size_type | size_type |
typedef slice::difference_type | difference_type |
typedef value_type | reference |
typedef const value_type & | const_reference |
typedef VectorType::const_iterator | const_iterator |
typedef VectorType::iterator | iterator |
typedef VectorType::cpu_value_type | cpu_value_type |
![]() | |
typedef scalar < VectorType::cpu_value_type > | value_type |
typedef VectorType::cpu_value_type | cpu_value_type |
typedef viennacl::backend::mem_handle | handle_type |
typedef vcl_size_t | size_type |
typedef vcl_ptrdiff_t | difference_type |
typedef const_vector_iterator < VectorType::cpu_value_type, 1 > | const_iterator |
typedef vector_iterator < VectorType::cpu_value_type, 1 > | iterator |
Public Member Functions | |
vector_slice (VectorType &v, slice const &entry_slice) | |
![]() | |
vector_base () | |
Default constructor in order to be compatible with various containers. More... | |
vector_base (viennacl::backend::mem_handle &h, size_type vec_size, size_type vec_start, difference_type vec_stride) | |
An explicit constructor for wrapping an existing vector into a vector_range or vector_slice. More... | |
vector_base (size_type vec_size, viennacl::context ctx=viennacl::context()) | |
Creates a vector and allocates the necessary memory. More... | |
vector_base (VectorType::cpu_value_type *ptr_to_mem, viennacl::memory_types mem_type, size_type vec_size, vcl_size_t start=0, difference_type stride=1) | |
vector_base (vector_expression< const LHS, const RHS, OP > const &proxy) | |
Creates the vector from the supplied random vector. More... | |
self_type & | operator= (const self_type &vec) |
Assignment operator. Other vector needs to be of the same size, or this vector is not yet initialized. More... | |
self_type & | operator= (const vector_expression< const LHS, const RHS, OP > &proxy) |
Implementation of the operation v1 = v2 @ alpha, where @ denotes either multiplication or division, and alpha is either a CPU or a GPU scalar. More... | |
self_type & | operator= (const vector_base< T > &v1) |
self_type & | operator= (unit_vector< VectorType::cpu_value_type > const &v) |
Creates the vector from the supplied unit vector. More... | |
self_type & | operator= (zero_vector< VectorType::cpu_value_type > const &v) |
Creates the vector from the supplied zero vector. More... | |
self_type & | operator= (scalar_vector< VectorType::cpu_value_type > const &v) |
Creates the vector from the supplied scalar vector. More... | |
self_type & | operator= (const viennacl::vector_expression< const matrix_base< VectorType::cpu_value_type, F >, const vector_base< VectorType::cpu_value_type >, viennacl::op_prod > &proxy) |
Operator overload for v1 = A * v2, where v1, v2 are vectors and A is a dense matrix. More... | |
self_type & | operator= (const vector_expression< const matrix_expression< const matrix_base< VectorType::cpu_value_type, F >, const matrix_base< VectorType::cpu_value_type, F >, op_trans >, const vector_base< VectorType::cpu_value_type >, op_prod > &proxy) |
Operator overload for v1 = trans(A) * v2, where v1, v2 are vectors and A is a dense matrix. More... | |
entry_proxy < VectorType::cpu_value_type > | operator() (size_type index) |
Read-write access to a single element of the vector. More... | |
const_entry_proxy < VectorType::cpu_value_type > | operator() (size_type index) const |
Read access to a single element of the vector. More... | |
entry_proxy < VectorType::cpu_value_type > | operator[] (size_type index) |
Read-write access to a single element of the vector. More... | |
const_entry_proxy < VectorType::cpu_value_type > | operator[] (size_type index) const |
Read access to a single element of the vector. More... | |
self_type & | operator+= (const self_type &vec) |
self_type & | operator-= (const self_type &vec) |
self_type & | operator*= (VectorType::cpu_value_typeval) |
Scales a vector (or proxy) by a CPU scalar value. More... | |
self_type & | operator/= (VectorType::cpu_value_typeval) |
Scales this vector by a CPU scalar value. More... | |
vector_expression< const self_type, const VectorType::cpu_value_type, op_mult > | operator* (VectorType::cpu_value_typevalue) const |
Scales the vector by a CPU scalar 'alpha' and returns an expression template. More... | |
vector_expression< const self_type, const VectorType::cpu_value_type, op_div > | operator/ (VectorType::cpu_value_typevalue) const |
Scales the vector by a CPU scalar 'alpha' and returns an expression template. More... | |
vector_expression< const self_type, const VectorType::cpu_value_type, op_mult > | operator- () const |
Sign flip for the vector. Emulated to be equivalent to -1.0 * vector. More... | |
iterator | begin () |
Returns an iterator pointing to the beginning of the vector (STL like) More... | |
const_iterator | begin () const |
Returns a const-iterator pointing to the beginning of the vector (STL like) More... | |
iterator | end () |
Returns an iterator pointing to the end of the vector (STL like) More... | |
const_iterator | end () const |
Returns a const-iterator pointing to the end of the vector (STL like) More... | |
self_type & | swap (self_type &other) |
Swaps the entries of the two vectors. More... | |
size_type | size () const |
Returns the length of the vector (cf. std::vector) More... | |
size_type | internal_size () const |
Returns the internal length of the vector, which is given by size() plus the extra memory due to padding the memory with zeros up to a multiple of 'ALIGNMENT'. More... | |
size_type | start () const |
Returns the offset within the buffer. More... | |
size_type | stride () const |
Returns the stride within the buffer (in multiples of sizeof(SCALARTYPE)) More... | |
bool | empty () const |
Returns true is the size is zero. More... | |
const handle_type & | handle () const |
Returns the memory handle. More... | |
handle_type & | handle () |
Returns the memory handle. More... | |
void | clear () |
Resets all entries to zero. Does not change the size of the vector. More... | |
viennacl::memory_types | memory_domain () const |
Static Public Attributes | |
static const int | alignment = VectorType::alignment |
![]() | |
static const size_type | alignment |
Additional Inherited Members | |
![]() | |
void | set_handle (viennacl::backend::mem_handle const &h) |
self_type & | fast_swap (self_type &other) |
Swaps the handles of two vectors by swapping the OpenCL handles only, no data copy. More... | |
void | pad () |
Pads vectors with alignment > 1 with trailing zeros if the internal size is larger than the visible size. More... | |
void | switch_memory_context (viennacl::context new_ctx) |
void | resize (size_type new_size, bool preserve=true) |
Resizes the allocated memory for the vector. Pads the memory to be a multiple of 'ALIGNMENT'. More... | |
void | resize (size_type new_size, viennacl::context ctx, bool preserve=true) |
Resizes the allocated memory for the vector. Convenience function for setting an OpenCL context in case reallocation is needed. More... | |
Class for representing strided subvectors of a bigger vector x.
In MATLAB notation, this could for example refer to the subvector x(3:2:8) of a vector x.
typedef VectorType::const_iterator const_iterator |
typedef const value_type& const_reference |
typedef VectorType::cpu_value_type cpu_value_type |
typedef VectorType::iterator iterator |
typedef value_type reference |
typedef slice::size_type size_type |
typedef VectorType::value_type value_type |
|
inline |
|
static |