ViennaCL - The Vienna Computing Library
1.5.1
|
Provides the datastructures for dealing with a single statement such as 'x = y + z;'. More...
Go to the source code of this file.
Data Structures | |
class | statement_not_supported_exception |
Exception for the case the scheduler is unable to deal with the operation. More... | |
struct | op_type_info< T > |
Helper metafunction for obtaining the operation ID as well as the operation family for unary and binary operations on vectors and matrices. More... | |
struct | numeric_type_id< T > |
Helper metafunction for obtaining the runtime type ID for a numerical type. More... | |
struct | layout_type_id< F > |
Helper metafunction for obtaining the memory layout (row-/column-major) for a matrix. More... | |
struct | lhs_rhs_element |
A class representing the 'data' for the LHS or RHS operand of the respective node. More... | |
struct | op_element |
Struct for holding the type family as well as the type of an operation (could be addition, subtraction, norm, etc.) More... | |
struct | statement_node |
Main datastructure for an node in the statement tree. More... | |
struct | num_nodes< T > |
Helper metafunction for obtaining the number of nodes of an expression template tree. More... | |
class | statement |
The main class for representing a statement such as x = inner_prod(y,z); at runtime. More... | |
Namespaces | |
namespace | viennacl |
Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them. | |
namespace | viennacl::scheduler |
Contains the scheduling functionality which allows for dynamic kernel generation as well as the fusion of multiple statements into a single kernel. | |
namespace | viennacl::scheduler::result_of |
Helper metafunctions used for the scheduler. | |
namespace | viennacl::scheduler::detail |
Implementation details for the scheduler. | |
Enumerations | |
enum | operation_node_type_family { OPERATION_INVALID_TYPE_FAMILY = 0, OPERATION_UNARY_TYPE_FAMILY, OPERATION_BINARY_TYPE_FAMILY } |
Optimization enum for grouping operations into unary or binary operations. Just for optimization of lookups. More... | |
enum | operation_node_type { OPERATION_INVALID_TYPE = 0, OPERATION_UNARY_ABS_TYPE, OPERATION_UNARY_ACOS_TYPE, OPERATION_UNARY_ASIN_TYPE, OPERATION_UNARY_ATAN_TYPE, OPERATION_UNARY_CEIL_TYPE, OPERATION_UNARY_COS_TYPE, OPERATION_UNARY_COSH_TYPE, OPERATION_UNARY_EXP_TYPE, OPERATION_UNARY_FABS_TYPE, OPERATION_UNARY_FLOOR_TYPE, OPERATION_UNARY_LOG_TYPE, OPERATION_UNARY_LOG10_TYPE, OPERATION_UNARY_SIN_TYPE, OPERATION_UNARY_SINH_TYPE, OPERATION_UNARY_SQRT_TYPE, OPERATION_UNARY_TAN_TYPE, OPERATION_UNARY_TANH_TYPE, OPERATION_UNARY_TRANS_TYPE, OPERATION_UNARY_NORM_1_TYPE, OPERATION_UNARY_NORM_2_TYPE, OPERATION_UNARY_NORM_INF_TYPE, OPERATION_BINARY_ACCESS_TYPE, OPERATION_BINARY_ASSIGN_TYPE, OPERATION_BINARY_INPLACE_ADD_TYPE, OPERATION_BINARY_INPLACE_SUB_TYPE, OPERATION_BINARY_ADD_TYPE, OPERATION_BINARY_SUB_TYPE, OPERATION_BINARY_MAT_VEC_PROD_TYPE, OPERATION_BINARY_MAT_MAT_PROD_TYPE, OPERATION_BINARY_MULT_TYPE, OPERATION_BINARY_DIV_TYPE, OPERATION_BINARY_ELEMENT_PROD_TYPE, OPERATION_BINARY_ELEMENT_DIV_TYPE, OPERATION_BINARY_INNER_PROD_TYPE } |
Enumeration for identifying the possible operations. More... | |
enum | statement_node_type_family { INVALID_TYPE_FAMILY = 0, COMPOSITE_OPERATION_FAMILY, SCALAR_TYPE_FAMILY, VECTOR_TYPE_FAMILY, MATRIX_TYPE_FAMILY } |
Groups the type of a node in the statement tree. Used for faster dispatching. More... | |
enum | statement_node_subtype { INVALID_SUBTYPE = 0, HOST_SCALAR_TYPE, DEVICE_SCALAR_TYPE, DENSE_VECTOR_TYPE, IMPLICIT_VECTOR_TYPE, DENSE_ROW_MATRIX_TYPE, DENSE_COL_MATRIX_TYPE, IMPLICIT_MATRIX_TYPE, COMPRESSED_MATRIX_TYPE, COORDINATE_MATRIX_TYPE, ELL_MATRIX_TYPE, HYB_MATRIX_TYPE } |
Encodes the type of a node in the statement tree. More... | |
enum | statement_node_numeric_type { INVALID_NUMERIC_TYPE = 0, CHAR_TYPE, UCHAR_TYPE, SHORT_TYPE, USHORT_TYPE, INT_TYPE, UINT_TYPE, LONG_TYPE, ULONG_TYPE, HALF_TYPE, FLOAT_TYPE, DOUBLE_TYPE } |
Encodes the type of a node in the statement tree. More... | |
Functions | |
void | execute_composite (statement const &s, statement_node const &root_node) |
Deals with x = RHS where RHS is an expression and x is either a scalar, a vector, or a matrix. |
Provides the datastructures for dealing with a single statement such as 'x = y + z;'.