25 #ifndef VISIONCPP_INCLUDE_FRAMEWORK_EXPR_TREE_POINT_OPS_ASSIGN_HPP_
26 #define VISIONCPP_INCLUDE_FRAMEWORK_EXPR_TREE_POINT_OPS_ASSIGN_HPP_
42 template <
typename LHS,
typename RHS,
size_t Cols,
size_t Rows,
size_t LfType,
47 using Type =
typename LHS::Type;
50 static constexpr
size_t Level = LVL;
51 static constexpr
size_t LeafType = Type::LeafType;
52 static constexpr
size_t RThread = RHS::RThread;
53 static constexpr
size_t CThread = RHS::CThread;
56 LHS::SubExpressionEvaluationNeeded || RHS::SubExpressionEvaluationNeeded;
60 template <
typename TmpLHS,
typename TmpRHS>
94 template <
bool ForcedToExec,
size_t LC,
size_t LR,
size_t LCT,
size_t LRT,
98 lhs.template sub_expression_evaluation<false, LC, LR, LCT, LRT>(dev),
99 rhs.template sub_expression_evaluation<false, LC, LR, LCT, LRT>(dev),
101 return execute_expr<false, false, ExprExchange<LHS, RHS>, LC, LR, LCT, LRT>(
102 lhs.template sub_expression_evaluation<false, LC, LR, LCT, LRT>(dev),
103 rhs.template sub_expression_evaluation<false, LC, LR, LCT, LRT>(dev),
111 template <
typename LHS,
typename RHS>
116 LHS, RHS>::Type::Level> {
118 LHS, RHS, LHS::Type::Cols, LHS::Type::Rows, LHS::Type::LeafType,
120 RHS>::Type::Level>(lhs, rhs);
static constexpr size_t Binary
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 assign(LHS lhs, RHS rhs) -> internal::Assign< LHS, RHS, LHS::Type::Cols, LHS::Type::Rows, LHS::Type::LeafType, 1+internal::tools::StaticIf<(LHS::Level > RHS::Level), LHS, RHS >::Type::Level >
assign function
The definition is in Assign file.
static constexpr bool has_out
static constexpr size_t Operation_type
static constexpr size_t Level
static constexpr size_t RThread
static constexpr size_t ND_Category
bool subexpr_execution_reseter
Assign(LHS lhsArg, RHS rhsArg)
static constexpr bool SubExpressionEvaluationNeeded
static constexpr size_t CThread
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
static constexpr size_t LeafType
typename LHS::OutType OutType