ViennaCL - The Vienna Computing Library  1.5.0
Data Structures | Namespaces | Typedefs | Enumerations | Functions
viennacl/generator/forwards.h File Reference

Forwards declaration. More...

#include <map>
#include <set>
#include <list>
#include <stdexcept>
#include "viennacl/tools/shared_ptr.hpp"
#include "viennacl/scheduler/forwards.h"

Go to the source code of this file.

Data Structures

struct  expression_descriptor
 A class for holding meta information such as the type or the underlying scalar type of an expression (such as x = inner_prod(y, z)). More...

Namespaces

namespace  viennacl
 

Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them.


namespace  viennacl::generator
 

Provides an OpenCL kernel generator.


namespace  viennacl::generator::utils
 

Contains various helper routines for kernel generation.


namespace  viennacl::generator::detail
 

Contains implementation details of the kernel generator.


Typedefs

typedef std::pair
< expression_type, vcl_size_t > 
expression_key_type
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  expression_type_family {
  SCALAR_SAXPY_FAMILY, VECTOR_SAXPY_FAMILY, MATRIX_SAXPY_FAMILY, SCALAR_REDUCE_FAMILY,
  VECTOR_REDUCE_FAMILY, MATRIX_PRODUCT_FAMILY, INVALID_EXPRESSION_FAMILY
}
enum  expression_type {
  SCALAR_SAXPY_TYPE, VECTOR_SAXPY_TYPE, MATRIX_SAXPY_TYPE, SCALAR_REDUCE_TYPE,
  VECTOR_REDUCE_Nx_TYPE, VECTOR_REDUCE_Tx_TYPE, MATRIX_PRODUCT_NN_TYPE, MATRIX_PRODUCT_TN_TYPE,
  MATRIX_PRODUCT_NT_TYPE, MATRIX_PRODUCT_TT_TYPE, INVALID_EXPRESSION_TYPE
}
enum  node_type { LHS_NODE_TYPE, PARENT_NODE_TYPE, RHS_NODE_TYPE }

Functions

void generate_enqueue_statement (viennacl::scheduler::statement const &s, scheduler::statement_node const &root_node)
 Generate and enqueue a statement plus root_node into the current queue.
void generate_enqueue_statement (viennacl::scheduler::statement const &s)
 Generate and enqueue a statement into the current queue, assumes the root_node is the first node of the statement.
const char * expression_type_to_string (expression_type type)
template<typename KeyT , typename ValueT >
ValueT const & at (std::map< KeyT, ValueT > const &map, KeyT const &key)
 Emulation of C++11's .at() member for std::map<>
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

Detailed Description

Forwards declaration.