ViennaCL - The Vienna Computing Library
1.5.0
|
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 |
Contains implementation details of the kernel generator.
typedef std::pair<viennacl::scheduler::statement_node const *, node_type> key_type |
typedef std::map<key_type, container_ptr_type> mapping_type |
enum node_type |
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
bool viennacl::generator::detail::is_arithmetic_operator | ( | viennacl::scheduler::operation_node_type const & | op_type | ) | [inline] |
checks whether an operator is arithmetic or not
bool viennacl::generator::detail::is_binary_leaf_operator | ( | viennacl::scheduler::operation_node_type const & | op_type | ) | [inline] |
checks whether an operator is both a binary node and a leaf