1 #ifndef VIENNACL_SCHEDULER_EXECUTE_AXBX_HPP
2 #define VIENNACL_SCHEDULER_EXECUTE_AXBX_HPP
59 v, 1.0, 1,
false,
false,
60 w, 1.0, 1,
false, flip_sign_z);
64 v, 1.0, 1,
false,
false,
65 w, 1.0, 1,
false, flip_sign_z);
69 v, 1.0, 1,
false,
true,
70 w, 1.0, 1,
false, !flip_sign_z);
98 v, alpha, 1, is_division,
false,
99 w, 1.0, 1,
false, flip_sign_z);
103 v, alpha, 1, is_division,
false,
104 w, 1.0, 1,
false, flip_sign_z);
108 v, alpha, 1, is_division,
true,
109 w, 1.0, 1,
false, !flip_sign_z);
137 switch (root_node.
op.
type)
141 v, 1.0, 1,
false,
false,
142 w, 1.0, 1,
false, flip_sign_z);
146 v, 1.0, 1,
false,
false,
147 w, 1.0, 1,
false, flip_sign_z);
151 v, 1.0, 1,
false,
true,
152 w, 1.0, 1,
false, !flip_sign_z);
183 switch (root_node.
op.
type)
187 v, 1.0, 1,
false,
false,
188 w, beta, 1, is_division, flip_sign_z);
192 v, 1.0, 1,
false,
false,
193 w, beta, 1, is_division, flip_sign_z);
197 v, 1.0, 1,
false,
true,
198 w, beta, 1, is_division, !flip_sign_z);
226 switch (root_node.
op.
type)
230 v, 1.0, 1,
false,
false,
231 w, 1.0, 1,
false, flip_sign_z);
235 v, 1.0, 1,
false,
false,
236 w, 1.0, 1,
false, flip_sign_z);
240 v, 1.0, 1,
false,
true,
241 w, 1.0, 1,
false, !flip_sign_z);
279 switch (root_node.
op.
type)
283 v, alpha, 1, is_division_y,
false,
284 w, beta, 1, is_division_z, flip_sign_z);
288 v, alpha, 1, is_division_y,
false,
289 w, beta, 1, is_division_z, flip_sign_z);
293 v, alpha, 1, is_division_y,
true,
294 w, beta, 1, is_division_z, !flip_sign_z);
339 switch (root_node.
op.
type)
343 v, 1.0, 1,
false,
false,
344 w, 1.0, 1,
false, flip_sign_z);
348 v, 1.0, 1,
false,
false,
349 w, 1.0, 1,
false, flip_sign_z);
353 v, 1.0, 1,
false,
true,
354 w, 1.0, 1,
false, !flip_sign_z);
statement_node_subtype subtype
Definition: forwards.h:270
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
lhs_rhs_element lhs
Definition: forwards.h:422
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
operation_node_type_family type_family
Definition: forwards.h:415
Provides unified wrappers for the common routines {as(), asbs(), asbs_s()}, {av(), avbv(), avbv_v()}, and {am(), ambm(), ambm_m()} such that scheduler logic is not cluttered with numeric type decutions.
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
Definition: forwards.h:170
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
Definition: forwards.h:205
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
Definition: forwards.h:90
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: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:57
op_element op
Definition: forwards.h:423
Definition: forwards.h:91
void axbx_x(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_v(), taking care of the argument unwrapping.
Definition: execute_generic_dispatcher.hpp:99
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
operation_node_type type
Definition: forwards.h:416
Definition: forwards.h:167