|
ViennaCL - The Vienna Computing Library
1.5.1
|
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
1.7.6.1