All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
forwards.h File Reference

Forwards declaration. More...

`#include <list>`
`#include <map>`
`#include <set>`
`#include <stdexcept>`
`#include "viennacl/scheduler/io.hpp"`
`#include "viennacl/ocl/forwards.h"`
`#include "viennacl/tools/shared_ptr.hpp"`
`#include "viennacl/scheduler/forwards.h"`
`#include "viennacl/backend/mem_handle.hpp"`

Go to the source code of this file.

## Classes

struct | viennacl::device_specific::index_tuple
class | viennacl::device_specific::generator_not_supported_exception
| Exception for the case the generator is unable to deal with the operation. More...
class | viennacl::device_specific::symbolic_binder
class | viennacl::device_specific::bind_to_handle
class | viennacl::device_specific::bind_all_unique
struct | viennacl::device_specific::char_to_type< C >
class | viennacl::device_specific::statements_container

## Namespaces

| viennacl
| Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them.
| viennacl::device_specific
| Provides an OpenCL kernel generator.
| viennacl::device_specific::utils
| Contains various helper routines for kernel generation.
| viennacl::device_specific::tree_parsing

## Typedefs

typedef std::pair< vcl_size_t, leaf_t > | viennacl::device_specific::mapping_key
typedef std::map< mapping_key, tools::shared_ptr < mapped_object > > | viennacl::device_specific::mapping_type
typedef cl_uint | viennacl::device_specific::vendor_id_type
typedef cl_device_type | viennacl::device_specific::device_type
typedef std::string | viennacl::device_specific::device_name_type

## Enumerations

enum

viennacl::device_specific::expression_type {
viennacl::device_specific::SCALAR_AXPY_TYPE, viennacl::device_specific::VECTOR_AXPY_TYPE, viennacl::device_specific::MATRIX_AXPY_TYPE, viennacl::device_specific::REDUCTION_TYPE,
viennacl::device_specific::ROW_WISE_REDUCTION_Nx_TYPE, viennacl::device_specific::ROW_WISE_REDUCTION_Tx_TYPE, viennacl::device_specific::MATRIX_PRODUCT_NN_TYPE, viennacl::device_specific::MATRIX_PRODUCT_TN_TYPE,
viennacl::device_specific::MATRIX_PRODUCT_NT_TYPE, viennacl::device_specific::MATRIX_PRODUCT_TT_TYPE, viennacl::device_specific::INVALID_EXPRESSION_TYPE
}

enum | viennacl::device_specific::leaf_t { viennacl::device_specific::LHS_NODE_TYPE, viennacl::device_specific::PARENT_NODE_TYPE, viennacl::device_specific::RHS_NODE_TYPE }
enum | viennacl::device_specific::binding_policy_t { viennacl::device_specific::BIND_ALL_UNIQUE, viennacl::device_specific::BIND_TO_HANDLE }

## Functions

bool | viennacl::device_specific::is_scalar_reduction (scheduler::statement_node const &node)
bool | viennacl::device_specific::is_vector_reduction (scheduler::statement_node const &node)
scheduler::statement_node const & | viennacl::device_specific::lhs_most (scheduler::statement::container_type const &array, vcl_size_t root)
const char * | viennacl::device_specific::expression_type_to_string (expression_type type)
template<typename KeyT , typename ValueT >
ValueT const & | viennacl::device_specific::at (std::map< KeyT, ValueT > const &map, KeyT const &key)
| Emulation of C++11's .at() member for std::map<>, const-version. More...
template<typename KeyT , typename ValueT >
ValueT & | viennacl::device_specific::at (std::map< KeyT, ValueT > &map, KeyT const &key)
| Emulation of C++11's .at() member for std::map<>, non-const version. More...
template<class Fun >
void | viennacl::device_specific::tree_parsing::traverse (scheduler::statement const &statement, vcl_size_t root_idx, Fun const &fun, bool inspect)
| Recursively execute a functor on a statement. More...
void | viennacl::device_specific::tree_parsing::process (utils::kernel_generation_stream &stream, leaf_t leaf, std::string const &type_key, std::string const &to_process, scheduler::statement const &statement, vcl_size_t root_idx, mapping_type const &mapping, std::set< std::string > &already_processed)
std::string | viennacl::device_specific::tree_parsing::evaluate (leaf_t leaf, std::map< std::string, std::string > const &accessors, scheduler::statement const &statement, vcl_size_t root_idx, mapping_type const &mapping)
tools::shared_ptr < symbolic_binder > | viennacl::device_specific::make_binder (binding_policy_t policy)

## Detailed Description

Forwards declaration.

Definition in file forwards.h.