ViennaCL - The Vienna Computing Library
1.5.2
|
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 | |
namespace | viennacl |
Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them. | |
namespace | viennacl::scheduler |
Contains the scheduling functionality which allows for dynamic kernel generation as well as the fusion of multiple statements into a single kernel. | |
namespace | viennacl::scheduler::detail |
Implementation details for the scheduler. | |
Defines | |
#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. |
Deals with the execution of unary and binary element-wise operations.
#define VIENNACL_SCHEDULER_GENERATE_UNARY_ELEMENT_OP | ( | OPNAME, | |
SCALARTYPE, | |||
OPTAG | |||
) |
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;
#define VIENNACL_SCHEDULER_GENERATE_UNARY_ELEMENT_OP | ( | OPNAME, | |
SCALARTYPE, | |||
OPTAG | |||
) |
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;
#define VIENNACL_SCHEDULER_GENERATE_UNARY_ELEMENT_OP | ( | OPNAME, | |
SCALARTYPE, | |||
OPTAG | |||
) |
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;