|
ViennaCL - The Vienna Computing Library
1.5.1
|
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. | |
| operator SCALARTYPE () const | |
| Conversion to a CPU floating point value. | |
| unsigned int | index () const |
| Returns the index of the represented element. | |
| handle_type const & | handle () const |
| Returns the memory handle. | |
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.
| SCALARTYPE | Either float or double |
| const_entry_proxy | ( | vcl_size_t | mem_offset, |
| handle_type const & | mem_handle | ||
| ) | [inline, explicit] |
The constructor for the proxy class. Declared explicit to avoid any surprises created by the compiler.
| mem_offset | The memory offset in multiples of sizeof(SCALARTYPE) relative to the memory pointed to by the handle |
| mem_handle | A viennacl::ocl::handle for the memory buffer on the GPU. |
| 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.
1.7.6.1