1 #ifndef VIENNACL_TRAITS_HANDLE_HPP_
2 #define VIENNACL_TRAITS_HANDLE_HPP_
54 inline char handle(
char val) {
return val; }
55 inline short handle(
short val) {
return val; }
56 inline int handle(
int val) {
return val; }
57 inline long handle(
long val) {
return val; }
58 inline float handle(
float val) {
return val; }
59 inline double handle(
double val) {
return val; }
61 template<
typename LHS,
typename RHS,
typename OP>
67 template<
typename LHS,
typename RHS,
typename OP>
70 template<
typename LHS,
typename RHS,
typename OP>
73 template<
typename LHS,
typename RHS,
typename OP>
103 return obj.get().
handle();
110 return obj.get().
handle();
116 return obj.get().
handle();
119 template<
typename LHS,
typename RHS,
typename OP>
125 template<
typename LHS,
typename RHS,
typename OP>
165 #ifdef VIENNACL_WITH_OPENCL
180 inline cl_char opencl_handle(
char val) {
return val; }
181 inline cl_short opencl_handle(
short val) {
return val; }
182 inline cl_int opencl_handle(
int val) {
return val; }
183 inline cl_long opencl_handle(
long val) {
return val; }
184 inline cl_uchar opencl_handle(
unsigned char val) {
return val; }
185 inline cl_ushort opencl_handle(
unsigned short val) {
return val; }
186 inline cl_uint opencl_handle(
unsigned int val) {
return val; }
187 inline cl_ulong opencl_handle(
unsigned long val) {
return val; }
188 inline float opencl_handle(
float val) {
return val; }
189 inline double opencl_handle(
double val) {
return val; }
193 template<
typename LHS,
typename NumericT>
236 template<
typename LHS,
typename RHS,
typename OP>
239 template<
typename LHS,
typename RHS,
typename OP>
245 template<
typename LHS,
typename RHS,
typename OP>
251 template<
typename LHS,
typename RHS,
typename OP>
258 template<
typename LHS,
typename NumericT>
Class for representing strided submatrices of a bigger matrix A.
Manages an OpenCL context and provides the respective convenience functions for creating buffers...
Expression template class for representing a tree of expressions which ultimately result in a matrix...
This file provides the forward declarations for the main types used within ViennaCL.
A proxy for scalar expressions (e.g. from inner vector products)
lhs_reference_type lhs() const
Get left hand side operand.
An expression template class that represents a binary operation that yields a vector.
Implements the multi-memory-domain handle.
Common base class for dense vectors, vector ranges, and vector slices.
handle_type & handle()
Returns the OpenCL handle, non-const-version.
viennacl::memory_types active_handle_id(T const &obj)
Returns an ID for the currently active memory domain of an object.
RHS & rhs() const
Get right hand side operand.
LHS & lhs() const
Returns the left hand side operand.
Main abstraction class for multiple memory domains. Represents a buffer in either main RAM...
A Circulant matrix class.
Class for representing non-strided submatrices of a bigger matrix A.
viennacl::backend::mem_handle & handle(T &obj)
Returns the generic memory handle of an object. Non-const version.
LHS & lhs() const
Get left hand side operand.
viennacl::backend::mem_handle::ram_handle_type & ram_handle(T &obj)
Generic helper routine for extracting the RAM handle of a ViennaCL object. Non-const version...
const handle_type & handle() const
Returns the memory handle.
ram_handle_type & ram_handle()
Returns the handle to a buffer in CPU RAM. NULL is returned if no such buffer has been allocated...
memory_types get_active_handle_id() const
Returns an ID for the currently active memory buffer. Other memory buffers might contain old or no da...