|
| RBiOP (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< Binary_Conds, ForcedToExec, ExprExchange< LHS, RHS >, LC, LR, LCT, LRT >(lhs.template sub_expression_evaluation< Binary_Conds, LC, LR, LRT, LCT >(dev), rhs.template sub_expression_evaluation< Binary_Conds, LC, LR, LRT, LCT >(dev), dev)) |
| sub_expression_evaluation More...
|
|
template<typename BI_OP, typename LHS, typename RHS, size_t Cols, size_t Rows, size_t LfType, size_t LVL>
struct visioncpp::internal::RBiOP< BI_OP, LHS, RHS, Cols, Rows, LfType, LVL >
The definition is in RBiOP file.
RBiOP is used to apply Binary Operation on left-hand side(LHS) and right-hand side(RHS) operands.
template parameters:
- Template Parameters
-
LHS | is the left-hand- side expression |
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 90 of file resizable_binary.hpp.
template<typename BI_OP , typename LHS , typename RHS , size_t Cols, size_t Rows, size_t LfType, size_t LVL>
template<typename TmpLHS , typename TmpRHS >
using visioncpp::internal::RBiOP< BI_OP, LHS, RHS, Cols, Rows, LfType, LVL >::ExprExchange = RBiOP<BI_OP, TmpLHS, TmpRHS, Cols, Rows, LfType, LVL> |
template<typename BI_OP , typename LHS , typename RHS , size_t Cols, size_t Rows, size_t LfType, size_t LVL>
Definition at line 125 of file resizable_binary.hpp.
References visioncpp::internal::RBiOP< BI_OP, LHS, RHS, Cols, Rows, LfType, LVL >::lhs, visioncpp::internal::RBiOP< BI_OP, LHS, RHS, Cols, Rows, LfType, LVL >::rhs, and visioncpp::internal::RBiOP< BI_OP, LHS, RHS, Cols, Rows, LfType, LVL >::subexpr_execution_reseter.
template<typename BI_OP , 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::RBiOP< BI_OP, LHS, RHS, Cols, Rows, LfType, LVL >::sub_expression_evaluation |
( |
const DeviceT & |
dev | ) |
-> decltype(execute_expr<Binary_Conds, ForcedToExec,
ExprExchange<LHS, RHS>, LC, LR, LCT, LRT>(
lhs.template sub_expression_evaluation<Binary_Conds, LC, LR, LRT,
LCT>(dev),
rhs.template sub_expression_evaluation<Binary_Conds, LC, LR, LRT,
LCT>(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 function parameters: |
- Parameters
-
dev | : the selected device for executing the expression |
- Returns
- LeafNode
Definition at line 152 of file resizable_binary.hpp.
References visioncpp::internal::RBiOP< BI_OP, LHS, RHS, Cols, Rows, LfType, LVL >::lhs, and visioncpp::internal::RBiOP< BI_OP, LHS, RHS, Cols, Rows, LfType, LVL >::rhs.