25 #ifndef VISIONCPP_INCLUDE_FRAMEWORK_EXPR_TREE_POINT_OPS_PARALLEL_COPY_HPP_
26 #define VISIONCPP_INCLUDE_FRAMEWORK_EXPR_TREE_POINT_OPS_PARALLEL_COPY_HPP_
48 template <
typename LHS,
typename RHS,
size_t Cols,
size_t Rows,
49 size_t OffsetColIn,
size_t OffsetRowIn,
size_t OffsetColOut,
50 size_t OffsetRowOut,
size_t LfType,
size_t LVL>
54 using Type =
typename LHS::Type;
55 static constexpr
size_t Level = LVL;
63 static constexpr
size_t LeafType = Type::LeafType;
66 template <
typename TmpLHS,
typename TmpRHS>
69 OffsetRowIn, OffsetColOut, OffsetRowOut, LfType,
82 (Cols != RHS::Type::Cols || Rows != RHS::Type::Rows ||
83 OffsetColIn != 0 || OffsetRowIn != 0)) ||
84 RHS::SubExpressionEvaluationNeeded;
117 template <
bool ForcedToExec,
size_t LC,
size_t LR,
size_t LCT,
size_t LRT,
127 rhs.template sub_expression_evaluation<false, LC, LR, LCT, LRT>(dev);
129 auto intermediate_output =
130 SubExprRes<LC, LR, LCT, LRT, 1 + LVL, decltype(eval_sub), DeviceT>
::get(eval_sub,
132 internal::fuse<LC, LR, LCT, LRT>(
134 LHS, decltype(intermediate_output), Cols, Rows, OffsetColIn,
135 OffsetRowIn, OffsetColOut, OffsetRowOut, LHS::LeafType,
137 (LHS::Level > decltype(intermediate_output)::
Level), LHS,
138 decltype(intermediate_output)>::Type::Level>(
139 lhs, intermediate_output),
148 template <
size_t Cols,
size_t Rows,
size_t OffsetColIn,
size_t OffsetRowIn,
149 size_t OffsetColOut,
size_t OffsetRowOut,
typename LHS,
typename RHS>
151 LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut,
155 LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut,
156 OffsetRowOut, LHS::LeafType,
158 RHS>::Type::Level>(lhs, rhs);
static constexpr size_t Binary
constexpr static size_t NeighbourOP
auto partial_assign(LHS lhs, RHS rhs) -> internal::ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LHS::LeafType, 1+internal::tools::StaticIf<(LHS::Level > RHS::Level), LHS, RHS >::Type::Level >
partial_assign function
The definition is in ParallelCopy file.
static constexpr bool SubExpressionEvaluationNeeded
static constexpr size_t RThread
static constexpr size_t CThread
static constexpr size_t LeafType
LHS sub_expression_evaluation(const DeviceT &dev)
sub_expression_evaluation
static constexpr size_t ND_Category
static constexpr bool has_out
ParallelCopy(LHS lhsArg, RHS rhsArg)
static constexpr size_t Level
static constexpr size_t Operation_type
bool subexpr_execution_reseter
typename LHS::OutType OutType
The definition is in SubExprRes file.