1 #ifndef VIENNACL_SCHEDULER_EXECUTE_HPP
2 #define VIENNACL_SCHEDULER_EXECUTE_HPP
56 if (scalar_is_temporary)
104 switch (root_node.
op.
type)
108 v, alpha, 1, is_division,
false);
112 u, 1.0, 1,
false,
false,
113 v, alpha, 1, is_division,
false);
117 u, 1.0, 1,
false,
false,
118 v, alpha, 1, is_division,
true);
133 switch (root_node.
op.
type)
137 v, alpha, 1, is_division,
false);
141 u, 1.0, 1,
false,
false,
142 v, alpha, 1, is_division,
false);
146 u, 1.0, 1,
false,
false,
147 v, alpha, 1, is_division,
true);
157 if (scalar_is_temporary)
188 switch (root_node.
op.
type)
192 v, 1.0, 1,
false,
false);
196 u, 1.0, 1,
false,
false,
197 v, 1.0, 1,
false,
false);
201 u, 1.0, 1,
false,
false,
202 v, 1.0, 1,
false,
true);
statement_node_subtype subtype
Definition: forwards.h:270
Deals with the execution of unary and binary element-wise operations.
Definition: forwards.h:83
Definition: forwards.h:182
vcl_size_t node_index
Definition: forwards.h:276
void new_element(lhs_rhs_element &new_elem, lhs_rhs_element const &old_element)
Definition: execute_util.hpp:102
void execute_matrix_prod(statement const &s, statement_node const &root_node)
Definition: execute_matrix_prod.hpp:393
Definition: forwards.h:86
Definition: forwards.h:56
lhs_rhs_element lhs
Definition: forwards.h:422
Definition: forwards.h:176
Deals with matrix-vector and matrix-matrix products.
Definition: forwards.h:185
void execute_scalar_assign_composite(statement const &s, statement_node const &root_node)
Deals with x = RHS where RHS is a vector expression.
Definition: execute_scalar_assign.hpp:35
This file provides the forward declarations for the main types used within ViennaCL.
void execute(statement const &s)
Definition: execute.hpp:235
A class representing the 'data' for the LHS or RHS operand of the respective node.
Definition: forwards.h:267
operation_node_type_family type_family
Definition: forwards.h:415
void execute_element_composite(statement const &s, statement_node const &root_node)
Deals with x = RHS where RHS is a vector expression.
Definition: execute_elementwise.hpp:390
lhs_rhs_element rhs
Definition: forwards.h:424
Deals with the execution of x = RHS; for a vector x and any compatible right hand side expression RHS...
void delete_element(lhs_rhs_element &elem)
Definition: execute_util.hpp:179
void execute_single(statement const &, statement_node const &root_node)
Deals with x = y for a scalar/vector/matrix x, y.
Definition: execute.hpp:184
Definition: forwards.h:170
void execute_impl(statement const &s, statement_node const &root_node)
Definition: execute.hpp:211
statement_node_numeric_type numeric_type
Definition: forwards.h:271
Definition: forwards.h:93
void axbx(lhs_rhs_element &x1, lhs_rhs_element const &x2, ScalarType1 const &alpha, vcl_size_t len_alpha, bool reciprocal_alpha, bool flip_sign_alpha, lhs_rhs_element const &x3, ScalarType2 const &beta, vcl_size_t len_beta, bool reciprocal_beta, bool flip_sign_beta)
Wrapper for viennacl::linalg::avbv(), taking care of the argument unwrapping.
Definition: execute_generic_dispatcher.hpp:67
Definition: forwards.h:92
void execute_axbx(statement const &s, statement_node const &root_node)
Deals with x = (y) +- (z) where y and z are either data objects or expressions.
Definition: execute_axbx.hpp:39
Definition: forwards.h:98
size_type root() const
Definition: forwards.h:475
Definition: forwards.h:84
Definition: forwards.h:173
Definition: forwards.h:205
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
Helper metafunction for checking whether the provided type is viennacl::op_div (for division) ...
Definition: predicate.hpp:448
void ax(lhs_rhs_element &x1, lhs_rhs_element const &x2, ScalarType1 const &alpha, vcl_size_t len_alpha, bool reciprocal_alpha, bool flip_sign_alpha)
Wrapper for viennacl::linalg::av(), taking care of the argument unwrapping.
Definition: execute_generic_dispatcher.hpp:44
Definition: forwards.h:90
Definition: forwards.h:96
Definition: forwards.h:100
container_type const & array() const
Definition: forwards.h:473
void execute_composite(statement const &s, statement_node const &root_node)
Deals with x = RHS where RHS is an expression and x is either a scalar, a vector, or a matrix...
Definition: execute.hpp:41
Definition: forwards.h:97
Definition: forwards.h:95
Definition: forwards.h:101
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:57
op_element op
Definition: forwards.h:423
Definition: forwards.h:91
Main datastructure for an node in the statement tree.
Definition: forwards.h:420
Exception for the case the scheduler is unable to deal with the operation.
Definition: forwards.h:36
Provides the datastructures for dealing with statements of the type x = (y) +- (z) ...
operation_node_type type
Definition: forwards.h:416
Definition: forwards.h:167