24 #ifndef VISIONCPP_INCLUDE_FRAMEWORK_EXPR_TREE_POINT_OPS_LEAF_NODE_HPP_
25 #define VISIONCPP_INCLUDE_FRAMEWORK_EXPR_TREE_POINT_OPS_LEAF_NODE_HPP_
37 template <
typename RHS,
size_t LVL>
42 RHS::Cols, RHS::Rows, RHS::Level>
::Type;
43 static constexpr
size_t Level = LVL;
45 using Scalar =
typename Type::Scalar;
46 static constexpr
size_t LeafType = RHS::LeafType;
47 static constexpr
size_t RThread = RHS::Rows;
48 static constexpr
size_t CThread = RHS::Cols;
49 using OutType =
typename RHS::ElementType;
53 RHS::SubExpressionEvaluationNeeded;
84 template <
bool ForcedToExec,
size_t LC,
size_t LR,
size_t LCT,
size_t LRT,
89 .template sub_expression_evaluation<false, LC, LR, LCT, LRT>(dev);
124 template <
typename ElemTp,
size_t Cols,
size_t Rows,
size_t MemoryType,
148 template <
typename ElemTp,
size_t Cols,
size_t Rows,
size_t MemoryType,
170 template <
typename ElemTp,
size_t LeafType>
static constexpr size_t Unary
constexpr static size_t PointOP
static constexpr ScopeType Global
auto terminal(typename internal::MemoryProperties< ElemTp >::ChannelType *dt) -> internal::LeafNode< internal::VisionMemory< true, internal::MemoryProperties< ElemTp >::ElementCategory, MemoryType, typename internal::MemoryProperties< ElemTp >::ChannelType, Cols, Rows, ElemTp, internal::MemoryProperties< ElemTp >::ChannelSize, Sc, 0 >, 0 >
template deduction of LeafNode for buffer/image/host 2d where the element_category is Struct
the definition is in LeafNode.
void unlock()
The unlock function for destroying the host accessor.
typename Type::Scalar Scalar
void set_output(std::shared_ptr< Scalar > &ptr)
set_output function is used to destroy the sycl buffer and manually allocate the data to the provided...
static constexpr size_t Operation_type
LeafNode(typename RHS::syclBuffer dt)
static constexpr size_t Level
static constexpr bool SubExpressionEvaluationNeeded
LeafNode< typename RHS::Type, Level > sub_expression_evaluation(const DeviceT &dev)
sub_expression_evaluation
typename internal::OutputMemory< typename RHS::ElementType, RHS::LeafType, RHS::Cols, RHS::Rows, RHS::Level >::Type Type
static constexpr size_t ND_Category
void reset_input(Scalar *dt)
reset_input is used to manually reset the input value of an input sycl buffer.
void lock()
lock function is used to access the sycl buffer on the host using a host pointer.
static constexpr bool has_out
static constexpr size_t CThread
typename RHS::ElementType OutType
static constexpr size_t LeafType
static constexpr size_t RThread
bool subexpr_execution_reseter
buffer copy is lightweight no need to pass by ref
This file is used to detect the ChannelType ElementCategory {basic or struct}, and the channel size o...
typename ElementTp::data_type ChannelType
OutputMemory is used to deduce the output type of each node in the expression tree by using certain p...
Definition of VisionMemory.