ViennaCL - The Vienna Computing Library  1.5.0
Data Structures | Typedefs | Enumerations | Functions
viennacl::generator::detail Namespace Reference

Contains implementation details of the kernel generator. More...

Data Structures

class  traversal_functor
 base functor class for traversing a statement More...
class  prototype_generation_traversal
 functor for generating the prototype of a statement More...
class  fetch_traversal
 functor for fetching the elements of a statement More...
class  expression_generation_traversal
 functor for generating the expression string from a statement More...
class  map_functor
 Functor to map the statements to the types defined in mapped_objects.hpp. More...
class  mapped_object
 Base class for mapping viennacl datastructure to generator-friendly structures. More...
class  mapped_binary_leaf
 Base class for mapping binary leaves (inner product-based, matrix vector product-base, matrix-matrix product based...) More...
class  mapped_matrix_product
 Mapping of a matrix product. More...
class  mapped_reduction
 Base class for mapping a reduction. More...
class  mapped_scalar_reduction
 Mapping of a scalar reduction (based on inner product) More...
class  mapped_vector_reduction
 Mapping of a vector reduction (based on matrix-vector product) More...
class  mapped_host_scalar
 Mapping of a host scalar to a generator class. More...
class  mapped_handle
 Base class for datastructures passed by pointer. More...
class  mapped_scalar
 Mapping of a scalar to a generator class. More...
class  mapped_buffer
 Base class for mapping buffer-based objects to a generator class. More...
class  mapped_vector
 Mapping of a vector to a generator class. More...
class  mapped_matrix
 Mapping of a matrix to a generator class. More...
class  mapped_implicit_vector
 Mapping of a implicit vector to a generator class. More...
class  mapped_implicit_matrix
 Mapping of a implicit matrix to a generator class. More...
class  set_arguments_functor
 Helper class for setting the arguments of a kernel. More...
class  statement_representation_functor
 Helper class for the OpenCL kernel generator, representing a statement. More...

Typedefs

typedef std::pair
< viennacl::scheduler::statement_node
const *, node_type
key_type
typedef tools::shared_ptr
< detail::mapped_object
container_ptr_type
typedef std::map< key_type,
container_ptr_type
mapping_type

Enumerations

enum  node_type { LHS_NODE_TYPE, PARENT_NODE_TYPE, RHS_NODE_TYPE }

Functions

std::string generate (std::pair< std::string, std::string > const &index, int vector_element, mapped_object const &s)
const char * generate (viennacl::scheduler::operation_node_type type)
 generate a string from an operation_node_type
bool is_binary_leaf_operator (viennacl::scheduler::operation_node_type const &op_type)
 checks whether an operator is both a binary node and a leaf
bool is_arithmetic_operator (viennacl::scheduler::operation_node_type const &op_type)
 checks whether an operator is arithmetic or not

Detailed Description

Contains implementation details of the kernel generator.


Typedef Documentation


Enumeration Type Documentation

enum node_type
Enumerator:
LHS_NODE_TYPE 
PARENT_NODE_TYPE 
RHS_NODE_TYPE 

Function Documentation

std::string generate ( std::pair< std::string, std::string > const &  index,
int  vector_element,
mapped_object const &  s 
) [inline]
const char * generate ( viennacl::scheduler::operation_node_type  type) [inline]

generate a string from an operation_node_type

checks whether an operator is arithmetic or not

checks whether an operator is both a binary node and a leaf