1 #ifndef VIENNACL_SCHEDULER_EXECUTE_AXBX_HPP 
    2 #define VIENNACL_SCHEDULER_EXECUTE_AXBX_HPP 
   61                      v, 1.0, 1, 
false, 
false,
 
   62                      w, 1.0, 1, 
false, flip_sign_z);
 
   66                        v, 1.0, 1, 
false, 
false,
 
   67                        w, 1.0, 1, 
false, flip_sign_z);
 
   71                        v, 1.0, 1, 
false, 
true,
 
   72                        w, 1.0, 1, 
false, !flip_sign_z);
 
  100                          v, alpha, 1, is_division, 
false,
 
  101                          w,   1.0, 1, 
false,       flip_sign_z);
 
  105                            v, alpha, 1, is_division, 
false,
 
  106                            w,   1.0, 1, 
false,       flip_sign_z);
 
  110                            v, alpha, 1, is_division, 
true,
 
  111                            w,   1.0, 1, 
false,       !flip_sign_z);
 
  139           switch (root_node.
op.
type)
 
  143                          v, 1.0, 1, 
false, 
false,
 
  144                          w, 1.0, 1, 
false, flip_sign_z);
 
  148                            v, 1.0, 1, 
false, 
false,
 
  149                            w, 1.0, 1, 
false, flip_sign_z);
 
  153                            v, 1.0, 1, 
false, 
true,
 
  154                            w, 1.0, 1, 
false, !flip_sign_z);
 
  185           switch (root_node.
op.
type)
 
  189                          v,  1.0, 1, 
false, 
false,
 
  190                          w, beta, 1, is_division, flip_sign_z);
 
  194                            v,  1.0, 1, 
false, 
false,
 
  195                            w, beta, 1, is_division, flip_sign_z);
 
  199                            v,  1.0, 1, 
false, 
true,
 
  200                            w, beta, 1, is_division, !flip_sign_z);
 
  228           switch (root_node.
op.
type)
 
  232                          v, 1.0, 1, 
false, 
false,
 
  233                          w, 1.0, 1, 
false, flip_sign_z);
 
  237                            v, 1.0, 1, 
false, 
false,
 
  238                            w, 1.0, 1, 
false, flip_sign_z);
 
  242                            v, 1.0, 1, 
false, 
true,
 
  243                            w, 1.0, 1, 
false, !flip_sign_z);
 
  281           switch (root_node.
op.
type)
 
  285                          v, alpha, 1, is_division_y, 
false,
 
  286                          w,  beta, 1, is_division_z, flip_sign_z);
 
  290                            v, alpha, 1, is_division_y, 
false,
 
  291                            w,  beta, 1, is_division_z, flip_sign_z);
 
  295                            v, alpha, 1, is_division_y, 
true,
 
  296                            w,  beta, 1, is_division_z, !flip_sign_z);
 
  341           switch (root_node.
op.
type)
 
  345                          v, 1.0, 1, 
false, 
false,
 
  346                          w, 1.0, 1, 
false, flip_sign_z);
 
  350                            v, 1.0, 1, 
false, 
false,
 
  351                            w, 1.0, 1, 
false, flip_sign_z);
 
  355                            v, 1.0, 1, 
false, 
true,
 
  356                            w, 1.0, 1, 
false, !flip_sign_z);
 
viennacl::context extract_context(statement_node const &root_node)
Helper routine for extracting the context in which a statement is executed. 
statement_node_subtype subtype
This file provides the forward declarations for the main types used within ViennaCL. 
statement_node_type_family type_family
A class representing the 'data' for the LHS or RHS operand of the respective node. 
container_type const & array() const 
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. 
operation_node_type_family type_family
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)
Represents a generic 'context' similar to an OpenCL context, but is backend-agnostic and thus also su...
std::vector< value_type > container_type
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. 
statement_node_numeric_type numeric_type
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. 
Provides the datastructures for dealing with a single statement such as 'x = y + z;'. 
Helper metafunction for checking whether the provided type is viennacl::op_div (for division) ...
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...
void new_element(lhs_rhs_element &new_elem, lhs_rhs_element const &old_element, viennacl::context const &ctx)
The main class for representing a statement such as x = inner_prod(y,z); at runtime. 
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. 
Main datastructure for an node in the statement tree. 
Exception for the case the scheduler is unable to deal with the operation.