ViennaCL - The Vienna Computing Library  1.5.1
Public Types | Public Member Functions
const_entry_proxy< SCALARTYPE > Class Template Reference

A proxy class for a single element of a vector or matrix. This proxy should not be noticed by end-users of the library. More...

#include <entry_proxy.hpp>

Public Types

typedef
viennacl::backend::mem_handle 
handle_type
 

Public Member Functions

 const_entry_proxy (vcl_size_t mem_offset, handle_type const &mem_handle)
 The constructor for the proxy class. Declared explicit to avoid any surprises created by the compiler. More...
 
 operator SCALARTYPE () const
 Conversion to a CPU floating point value. More...
 
unsigned int index () const
 Returns the index of the represented element. More...
 
handle_type const & handle () const
 Returns the memory handle. More...
 

Detailed Description

template<typename SCALARTYPE>
class viennacl::const_entry_proxy< SCALARTYPE >

A proxy class for a single element of a vector or matrix. This proxy should not be noticed by end-users of the library.

This proxy provides access to a single entry of a vector. If the element is assigned to a GPU object, no unnecessary transfers to the CPU and back to GPU are initiated.

Template Parameters
SCALARTYPEEither float or double

Member Typedef Documentation

Constructor & Destructor Documentation

const_entry_proxy ( vcl_size_t  mem_offset,
handle_type const &  mem_handle 
)
inlineexplicit

The constructor for the proxy class. Declared explicit to avoid any surprises created by the compiler.

Parameters
mem_offsetThe memory offset in multiples of sizeof(SCALARTYPE) relative to the memory pointed to by the handle
mem_handleA viennacl::ocl::handle for the memory buffer on the GPU.

Member Function Documentation

handle_type const& handle ( ) const
inline

Returns the memory handle.

unsigned int index ( ) const
inline

Returns the index of the represented element.

operator SCALARTYPE ( ) const
inline

Conversion to a CPU floating point value.

This conversion allows to write something like double test = vector(4); However, one has to keep in mind that CPU<->GPU transfers are very slow compared to CPU<->CPU operations.


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