|
| Assign (LHS lhsArg, RHS rhsArg) |
|
void | reset (bool reset) |
|
template<bool ForcedToExec, size_t LC, size_t LR, size_t LCT, size_t LRT, typename DeviceT > |
auto | sub_expression_evaluation (const DeviceT &dev) -> decltype(execute_expr< false, false, ExprExchange< LHS, RHS >, LC, LR, LCT, LRT >(lhs.template sub_expression_evaluation< false, LC, LR, LCT, LRT >(dev), rhs.template sub_expression_evaluation< false, LC, LR, LCT, LRT >(dev), dev)) |
| sub_expression_evaluation More...
|
|
template<typename LHS, typename RHS, size_t Cols, size_t Rows, size_t LfType, size_t LVL>
struct visioncpp::internal::Assign< LHS, RHS, Cols, Rows, LfType, LVL >
The definition is in Assign file.
Assign is used to allocate the result of the right hand side expression (RHS) to the left hand side expression LHS.
LHS is always a leaf node. It can be used for PointOP, NeighbourOP, and GlobalNeighbourOP. template parameters:
- Template Parameters
-
LHS | is the output leafNode |
RHS | is the right hand side expression |
Cols | determines the column size of the output |
Rows | determines the row size of the output |
LfType | determines the type of the leafNode {Buffer2D, Buffer1D, Host, Image} |
LVL | the level of the node in the expression tree |
Definition at line 44 of file assign.hpp.
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t LfType, size_t LVL>
template<bool ForcedToExec, size_t LC, size_t LR, size_t LCT, size_t LRT, typename DeviceT >
auto visioncpp::internal::Assign< LHS, RHS, Cols, Rows, LfType, LVL >::sub_expression_evaluation |
( |
const DeviceT & |
dev | ) |
-> decltype(
execute_expr<false, false, ExprExchange<LHS, RHS>, LC, LR, LCT, LRT>(
lhs.template sub_expression_evaluation<false, LC, LR, LCT, LRT>(dev),
rhs.template sub_expression_evaluation<false, LC, LR, LCT, LRT>(dev),
dev)) |
|
inline |
sub_expression_evaluation
This function is used to break the expression tree whenever necessary. The decision for breaking the tree will be determined based on the static parameter called SubExpressionEvaluationNeeded. When this is set to true, the sub_expression_evaluation is called recursively from the root of the tree. Each node based on their parent decision will decide to launch a kernel for itself. Also, they decide for each of their children whether or not to launch a kernel separately. template parameters:
- Template Parameters
-
ForcedToExec | : a boolean value representing the decision made by the parent of this node for launching a kernel. |
LC | is the column size of local memory required by Filter2D and DownSmplOP |
LR | is the row size of local memory required by Filter2D and DownSmplOP |
LCT | is the column size of workgroup |
LRT | is the row size of workgroup |
DeviceT | type representing the device function parameters: |
- Parameters
-
dev | : the selected device for executing the expression |
- Returns
- LeafNode
Definition at line 96 of file assign.hpp.
References visioncpp::internal::Assign< LHS, RHS, Cols, Rows, LfType, LVL >::lhs, and visioncpp::internal::Assign< LHS, RHS, Cols, Rows, LfType, LVL >::rhs.