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 <forwards.h>
Public Types | |
typedef viennacl::backend::mem_handle | handle_type |
Public Member Functions | |
entry_proxy (vcl_size_t mem_offset, handle_type &mem_handle) | |
The constructor for the proxy class. Declared explicit to avoid any surprises created by the compiler. More... | |
entry_proxy & | operator+= (NumericT value) |
Inplace addition of a CPU floating point value. More... | |
entry_proxy & | operator-= (NumericT value) |
Inplace subtraction of a CPU floating point value. More... | |
entry_proxy & | operator*= (NumericT value) |
Inplace multiplication with a CPU floating point value. More... | |
entry_proxy & | operator/= (NumericT value) |
Inplace division by a CPU floating point value. More... | |
entry_proxy & | operator= (NumericT value) |
Assignment of a CPU floating point value. More... | |
entry_proxy & | operator= (scalar< NumericT > const &value) |
Assignment of a GPU floating point value. Avoids unnecessary GPU->CPU->GPU transfers. More... | |
entry_proxy & | operator= (entry_proxy const &other) |
Assignment of another GPU value. More... | |
operator NumericT () const | |
Conversion to a CPU floating point value. More... | |
vcl_size_t | index () const |
Returns the index of the represented element. More... | |
handle_type const & | handle () const |
Returns the memory viennacl::ocl::handle. More... | |
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.
NumericT | Either float or double |
Definition at line 233 of file forwards.h.
typedef viennacl::backend::mem_handle viennacl::entry_proxy< NumericT >::handle_type |
Definition at line 44 of file entry_proxy.hpp.
|
inlineexplicit |
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(NumericT) relative to the memory pointed to by the handle |
mem_handle | A viennacl::ocl::handle for the memory buffer on the GPU. |
Definition at line 51 of file entry_proxy.hpp.
|
inline |
Returns the memory viennacl::ocl::handle.
Definition at line 142 of file entry_proxy.hpp.
|
inline |
Returns the index of the represented element.
Definition at line 138 of file entry_proxy.hpp.
|
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.
Definition at line 130 of file entry_proxy.hpp.
|
inline |
Inplace multiplication with a CPU floating point value.
Definition at line 79 of file entry_proxy.hpp.
|
inline |
Inplace addition of a CPU floating point value.
Definition at line 59 of file entry_proxy.hpp.
|
inline |
Inplace subtraction of a CPU floating point value.
Definition at line 69 of file entry_proxy.hpp.
|
inline |
Inplace division by a CPU floating point value.
Definition at line 89 of file entry_proxy.hpp.
|
inline |
Assignment of a CPU floating point value.
Definition at line 99 of file entry_proxy.hpp.
|
inline |
Assignment of a GPU floating point value. Avoids unnecessary GPU->CPU->GPU transfers.
Definition at line 107 of file entry_proxy.hpp.
|
inline |
Assignment of another GPU value.
Definition at line 115 of file entry_proxy.hpp.