ViennaCL - The Vienna Computing Library  1.5.2
Data Structures | Namespaces | Enumerations | Functions
viennacl/scheduler/forwards.h File Reference

Provides the datastructures for dealing with a single statement such as 'x = y + z;'. More...

#include "viennacl/forwards.h"
#include <vector>

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.

Detailed Description

Provides the datastructures for dealing with a single statement such as 'x = y + z;'.