1 #ifndef VIENNACL_SCHEDULER_IO_HPP
2 #define VIENNACL_SCHEDULER_IO_HPP
40 #define VIENNACL_TRANSLATE_OP_TO_STRING(NAME) case NAME: return #NAME;
97 return "OPERATION_INVALID_TYPE";
105 #undef VIENNACL_TRANSLATE_OP_TO_STRING
107 #define VIENNACL_TRANSLATE_ELEMENT_TO_STRING(NAME, ELEMENT) case NAME: ss << "(" << element.ELEMENT << ")"; return #NAME + ss.str();
112 std::stringstream ss;
117 return "COMPOSITE_OPERATION_FAMILY" + ss.str();
123 ss <<
", HOST_SCALAR_TYPE ";
142 ss <<
", DEVICE_SCALAR_TYPE";
162 ss <<
", DENSE_VECTOR_TYPE ";
184 ss <<
", DENSE_ROW_MATRIX_TYPE ";
204 ss <<
", DENSE_COL_MATRIX_TYPE ";
225 return "INVALID_TYPE_FAMILY";
231 #undef VIENNACL_TRANSLATE_ELEMENT_TO_STRING
258 StatementNodeContainer
const & nodes = s.
array();
259 StatementNode
const & current_node = nodes[node_index];
264 os <<
"Node " << node_index <<
": " << current_node << std::endl;
267 print_node(os, s, current_node.lhs.node_index, indent+1);
270 print_node(os, s, current_node.rhs.node_index, indent+1);
statement_node_subtype subtype
Definition: forwards.h:270
std::size_t vcl_size_t
Definition: forwards.h:58
Definition: forwards.h:210
Definition: forwards.h:83
vcl_size_t node_index
Definition: forwards.h:276
Definition: forwards.h:164
Definition: forwards.h:86
Definition: forwards.h:56
lhs_rhs_element lhs
Definition: forwards.h:422
Definition: forwards.h:176
Definition: forwards.h:217
Definition: forwards.h:81
Definition: forwards.h:66
Definition: forwards.h:190
This file provides the forward declarations for the main types used within ViennaCL.
A class representing the 'data' for the LHS or RHS operand of the respective node.
Definition: forwards.h:267
#define VIENNACL_TRANSLATE_OP_TO_STRING(NAME)
Definition: io.hpp:40
operation_node_type_family type_family
Definition: forwards.h:415
lhs_rhs_element rhs
Definition: forwards.h:424
Struct for holding the type family as well as the type of an operation (could be addition, subtraction, norm, etc.)
Definition: forwards.h:413
Definition: forwards.h:80
Definition: forwards.h:214
Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them.
Definition: cpu_ram.hpp:29
Definition: forwards.h:170
Definition: forwards.h:82
std::string to_string(viennacl::scheduler::op_element op_elem)
Helper routine for converting the operation enums to string.
Definition: io.hpp:43
statement_node_numeric_type numeric_type
Definition: forwards.h:271
Definition: forwards.h:93
Definition: forwards.h:70
Definition: forwards.h:74
#define VIENNACL_TRANSLATE_ELEMENT_TO_STRING(NAME, ELEMENT)
Definition: io.hpp:107
Definition: forwards.h:92
Definition: forwards.h:63
Definition: forwards.h:98
Definition: forwards.h:184
Definition: forwards.h:73
size_type root() const
Definition: forwards.h:475
Definition: forwards.h:84
Definition: forwards.h:173
Definition: forwards.h:69
Definition: forwards.h:209
Definition: forwards.h:53
Definition: forwards.h:78
Definition: forwards.h:76
Definition: forwards.h:75
Definition: forwards.h:99
Provides the datastructures for dealing with a single statement such as 'x = y + z;'.
std::vector< value_type > container_type
Definition: forwards.h:452
void print_node(std::ostream &os, viennacl::scheduler::statement const &s, vcl_size_t node_index, vcl_size_t indent=0)
Recursive worker routine for printing a whole statement.
Definition: io.hpp:253
Definition: forwards.h:90
Definition: forwards.h:77
Definition: forwards.h:96
Definition: forwards.h:71
Definition: forwards.h:100
container_type const & array() const
Definition: forwards.h:473
Definition: forwards.h:97
Definition: forwards.h:95
std::ostream & operator<<(std::ostream &os, viennacl::scheduler::statement_node const &s_node)
Print a single statement_node. Non-recursive.
Definition: io.hpp:237
Definition: forwards.h:79
Definition: forwards.h:211
Definition: forwards.h:207
Definition: forwards.h:101
Definition: forwards.h:212
Definition: forwards.h:94
statement_node_type_family type_family
Definition: forwards.h:269
The main class for representing a statement such as x = inner_prod(y,z); at runtime.
Definition: forwards.h:447
Definition: forwards.h:85
Definition: forwards.h:68
Definition: forwards.h:57
op_element op
Definition: forwards.h:423
Definition: forwards.h:208
Definition: forwards.h:216
Definition: forwards.h:91
Main datastructure for an node in the statement tree.
Definition: forwards.h:420
Definition: forwards.h:67
Definition: forwards.h:72
Definition: forwards.h:213
Exception for the case the scheduler is unable to deal with the operation.
Definition: forwards.h:36
operation_node_type type
Definition: forwards.h:416
Definition: forwards.h:167