26 #ifndef VISIONCPP_INCLUDE_FRAMEWORK_EXPR_TREE_NEIGHBOUR_OPS_STENCIL_NO_FILTER_HPP_
27 #define VISIONCPP_INCLUDE_FRAMEWORK_EXPR_TREE_NEIGHBOUR_OPS_STENCIL_NO_FILTER_HPP_
47 template <
typename FilterOP,
size_t Halo_T,
size_t Halo_L,
size_t Halo_B,
48 size_t Halo_R,
typename RHS,
size_t Cols,
size_t Rows,
size_t LfType,
53 using OutType =
typename FilterOP::OutType;
58 static constexpr
size_t Level = LVL;
59 static constexpr
size_t LeafType = Type::LeafType;
72 template <
typename TmpRHS>
75 Cols, Rows, LfType, LVL>;
105 template <
bool ForcedToExec,
size_t LC,
size_t LR,
size_t LCT,
size_t LRT,
113 return execute_expr<Stencil_Conds, ForcedToExec, ExprExchange<RHS>, LC, LR,
115 rhs.template sub_expression_evaluation<Stencil_Conds, LC, LR, LCT, LRT>(
123 template <
typename OP,
size_t Halo_T,
size_t Halo_L,
size_t Halo_B,
124 size_t Halo_R,
size_t Cols,
size_t Rows,
size_t LeafType,
128 Halo_T, Halo_L, Halo_B, Halo_R, RHS, Cols, Rows,
129 LeafType, 1 + RHS::Level> {
131 Halo_T, Halo_L, Halo_B, Halo_R, RHS, Cols, Rows,
132 LeafType, 1 + RHS::Level>(rhs);
138 template <
typename OP,
size_t Halo_T,
size_t Halo_L,
size_t Halo_B,
139 size_t Halo_R,
typename RHS>
142 Halo_T, Halo_L, Halo_B, Halo_R, RHS, RHS::Type::Cols,
143 RHS::Type::Rows, RHS::Type::LeafType,
146 Halo_T, Halo_L, Halo_B, Halo_R, RHS,
147 RHS::Type::Cols, RHS::Type::Rows,
148 RHS::Type::LeafType, 1 + RHS::Level>(rhs);
static constexpr size_t Unary
auto neighbour_operation(RHS rhs) -> internal::StnNoFilt< internal::LocalUnaryOp< OP, typename RHS::OutType >, Halo_T, Halo_L, Halo_B, Halo_R, RHS, Cols, Rows, LeafType, 1+RHS::Level >
template deduction for StnNoFilt class when the memory type of the output and column and row are defi...
auto execute_expr(NestedExpr nestedExpr, const DeviceT &dev) -> decltype(internal::IfExprExecNeeded< Conds, ParentConds, internal::expr_category::Unary, Expr, DeviceT >::template execute_expr< LC, LR, LCT, LRT >(nestedExpr, dev))
template deduction for IfExprExecNeeded when the expression category is unary
auto neighbour_operation(RHS rhs) -> internal::RDCN< internal::LocalUnaryOp< OP, typename RHS::OutType >, RHS, Cols, Rows, LeafType, 1+RHS::Level >
template deduction function for RDCN when it is used for NeighbourOP.
OutputMemory is used to deduce the output type of each node in the expression tree by using certain p...
The definition is in StnNoFilt file.
static constexpr size_t CThread
static constexpr size_t RThread
static constexpr size_t LeafType
static constexpr size_t ND_Category
static constexpr size_t Halo_Right
static constexpr size_t Operation_type
bool subexpr_execution_reseter
static constexpr size_t Level
typename FilterOP::OutType OutType
static constexpr bool SubExpressionEvaluationNeeded
static constexpr bool has_out
static constexpr size_t Halo_Left
static constexpr size_t Halo_Butt
static constexpr bool Stencil_Conds
typename visioncpp::internal::OutputMemory< OutType, LfType, Cols, Rows, LVL >::Type Type
static constexpr size_t Halo_Top
auto sub_expression_evaluation(const DeviceT &dev) -> decltype(execute_expr< Stencil_Conds, ForcedToExec, ExprExchange< RHS >, LC, LR, LCT, LRT >(rhs.template sub_expression_evaluation< Stencil_Conds, LC, LR, LRT, LCT >(dev), dev))
sub_expression_evaluation