ViennaCL - The Vienna Computing Library  1.5.1
Public Types | Public Member Functions | Static Public Attributes
vector_range< VectorType > Class Template Reference

Class for representing non-strided subvectors of a bigger vector x. More...

#include <forwards.h>

Inheritance diagram for vector_range< VectorType >:
vector_base< VectorType::cpu_value_type >

Public Types

typedef VectorType::value_type value_type
 
typedef range::size_type size_type
 
typedef range::difference_type difference_type
 
typedef value_type reference
 
typedef const value_typeconst_reference
 
typedef VectorType::const_iterator const_iterator
 
typedef VectorType::iterator iterator
 
typedef VectorType::cpu_value_type cpu_value_type
 
- Public Types inherited from vector_base< VectorType::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_range (VectorType &v, range const &entry_range)
 
- Public Member Functions inherited from vector_base< VectorType::cpu_value_type >
 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_typeoperator= (const self_type &vec)
 Assignment operator. Other vector needs to be of the same size, or this vector is not yet initialized. More...
 
self_typeoperator= (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_typeoperator= (const vector_base< T > &v1)
 
self_typeoperator= (unit_vector< VectorType::cpu_value_type > const &v)
 Creates the vector from the supplied unit vector. More...
 
self_typeoperator= (zero_vector< VectorType::cpu_value_type > const &v)
 Creates the vector from the supplied zero vector. More...
 
self_typeoperator= (scalar_vector< VectorType::cpu_value_type > const &v)
 Creates the vector from the supplied scalar vector. More...
 
self_typeoperator= (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_typeoperator= (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_typeoperator+= (const self_type &vec)
 
self_typeoperator+= (const vector_expression< const LHS, const RHS, OP > &proxy)
 
self_typeoperator-= (const self_type &vec)
 
self_typeoperator-= (const vector_expression< const LHS, const RHS, OP > &proxy)
 
self_typeoperator*= (VectorType::cpu_value_typeval)
 Scales a vector (or proxy) by a CPU scalar value. More...
 
self_typeoperator/= (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_typeswap (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_typehandle () const
 Returns the memory handle. More...
 
handle_typehandle ()
 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 Public Attributes inherited from vector_base< VectorType::cpu_value_type >
static const size_type alignment
 

Additional Inherited Members

- Protected Member Functions inherited from vector_base< VectorType::cpu_value_type >
void set_handle (viennacl::backend::mem_handle const &h)
 
self_typefast_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...
 

Detailed Description

template<typename VectorType>
class viennacl::vector_range< VectorType >

Class for representing non-strided subvectors of a bigger vector x.

In MATLAB notation, this could for example refer to the subvector x(3:8) of a vector x.

Member Typedef Documentation

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 VectorType::value_type value_type

Constructor & Destructor Documentation

vector_range ( VectorType &  v,
range const &  entry_range 
)
inline

Field Documentation

const int alignment = VectorType::alignment
static

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