ViennaCL - The Vienna Computing Library  1.7.0
Free open-source GPU-accelerated linear algebra and solver library.
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.