ViennaCL - The Vienna Computing Library  1.5.1
Namespaces | Macros | Functions
execute_elementwise.hpp File Reference

Deals with the execution of unary and binary element-wise operations. More...

#include "viennacl/forwards.h"
#include "viennacl/scheduler/forwards.h"
#include "viennacl/scheduler/execute_util.hpp"
#include "viennacl/linalg/vector_operations.hpp"
#include "viennacl/linalg/matrix_operations.hpp"

Go to the source code of this file.

Namespaces

 viennacl
 Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them.
 
 viennacl::scheduler
 Contains the scheduling functionality which allows for dynamic kernel generation as well as the fusion of multiple statements into a single kernel.
 
 viennacl::scheduler::detail
 Implementation details for the scheduler.
 

Macros

#define VIENNACL_SCHEDULER_GENERATE_UNARY_ELEMENT_OP(OPNAME, SCALARTYPE, OPTAG)
 
#define VIENNACL_SCHEDULER_GENERATE_UNARY_ELEMENT_OP(OPNAME, SCALARTYPE, OPTAG)
 
#define VIENNACL_SCHEDULER_GENERATE_UNARY_ELEMENT_OP(OPNAME, SCALARTYPE, OPTAG)
 

Functions

void element_op (lhs_rhs_element result, lhs_rhs_element const &x, operation_node_type op_type)
 
void element_op (lhs_rhs_element result, lhs_rhs_element const &x, lhs_rhs_element const &y, operation_node_type op_type)
 
void execute_element_composite (statement const &s, statement_node const &root_node)
 Deals with x = RHS where RHS is a vector expression. More...
 

Detailed Description

Deals with the execution of unary and binary element-wise operations.

Macro Definition Documentation

#define VIENNACL_SCHEDULER_GENERATE_UNARY_ELEMENT_OP (   OPNAME,
  SCALARTYPE,
  OPTAG 
)
Value:
case OPNAME: viennacl::linalg::element_op(*result.vector_##SCALARTYPE, \
viennacl::vector_expression<const vector_base<SCALARTYPE>, const vector_base<SCALARTYPE>, \
op_element_unary<OPTAG> >(*x.vector_##SCALARTYPE, *x.vector_##SCALARTYPE)); break;
An expression template class that represents a binary operation that yields a vector.
Definition: forwards.h:181
void element_op(matrix_base< T, F > &A, matrix_expression< const matrix_base< T, F >, const matrix_base< T, F >, OP > const &proxy)
Implementation of the element-wise operation A = B .* C and A = B ./ C for matrices (using MATLAB syn...
Definition: matrix_operations.hpp:598
#define VIENNACL_SCHEDULER_GENERATE_UNARY_ELEMENT_OP (   OPNAME,
  SCALARTYPE,
  OPTAG 
)
Value:
case OPNAME: viennacl::linalg::element_op(*result.matrix_row_##SCALARTYPE, \
viennacl::matrix_expression<const matrix_base<SCALARTYPE, viennacl::row_major>, const matrix_base<SCALARTYPE, viennacl::row_major>, \
op_element_unary<OPTAG> >(*x.matrix_row_##SCALARTYPE, *x.matrix_row_##SCALARTYPE)); break;
Expression template class for representing a tree of expressions which ultimately result in a matrix...
Definition: forwards.h:283
void element_op(matrix_base< T, F > &A, matrix_expression< const matrix_base< T, F >, const matrix_base< T, F >, OP > const &proxy)
Implementation of the element-wise operation A = B .* C and A = B ./ C for matrices (using MATLAB syn...
Definition: matrix_operations.hpp:598
#define VIENNACL_SCHEDULER_GENERATE_UNARY_ELEMENT_OP (   OPNAME,
  SCALARTYPE,
  OPTAG 
)
Value:
case OPNAME: viennacl::linalg::element_op(*result.matrix_col_##SCALARTYPE, \
viennacl::matrix_expression<const matrix_base<SCALARTYPE, viennacl::column_major>, const matrix_base<SCALARTYPE, viennacl::column_major>, \
op_element_unary<OPTAG> >(*x.matrix_col_##SCALARTYPE, *x.matrix_col_##SCALARTYPE)); break;
Expression template class for representing a tree of expressions which ultimately result in a matrix...
Definition: forwards.h:283
void element_op(matrix_base< T, F > &A, matrix_expression< const matrix_base< T, F >, const matrix_base< T, F >, OP > const &proxy)
Implementation of the element-wise operation A = B .* C and A = B ./ C for matrices (using MATLAB syn...
Definition: matrix_operations.hpp:598