VisionCpp  0.0.1
Namespaces | Classes | Functions
visioncpp::internal Namespace Reference

Internal implementations. More...

Namespaces

 element_category
 two category of element exist : basic which is the primary types and struct which is user define types like F32C3, U8C3, ...
 
 expr_category
 this is used to define the type of nodes in an expression tree
 
 mem_dim
 Color / Row-major option.
 
 ops_category
 list of supported types of operations the operation type can be Point operation, neighbour operation
 
 tools
 Internal tools scope.
 

Classes

struct  DeviceSelector
 this class is used to define different types of device for sycl More...
 
struct  DeviceSelector< device::cpu >
 specialisation of the device_selector for sycl when the device type is cpu More...
 
struct  DeviceSelector< device::gpu >
 specialisation of the device_selector for sycl when the device type is gpu More...
 
struct  DeviceSelector< device::host >
 specialisation of the device_selector for sycl when the device type is host More...
 
struct  ExtractAccessor
 The extract accessor struct is used to extract the accessor from the leafnodes and pack them in a tuple by using the in-order traverse algorithm on the expression tree. More...
 
struct  ExtractAccessor< expr_category::Unary, LeafNode< RHS, LVL > >
 Specialisation of ExtractAccessor class where the expression node is LeafNode. More...
 
struct  ExtractAccessor< expr_category::Unary, Expr >
 Specialisation of ExtractAccessor class where the expression node has one child. More...
 
struct  ExtractAccessor< expr_category::Binary, Expr >
 Specialisation of ExtractAccessor class where the expression node has two children. More...
 
struct  ExtractAccessor< expr_category::Binary, Assign< LHSExpr, RHSExpr, Cols, Rows, LeafType, LVL > >
 Specialisation of ExtractAccessor class where the expression node is Assign. More...
 
struct  ExtractAccessor< expr_category::Binary, ParallelCopy< LHSExpr, RHSExpr, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LeafType, LVL > >
 Specialisation of ExtractAccessor class where the expression node is is a ParallelCopy (partial assign) More...
 
class  Device_< backend::sycl, dv >
 specialisation Device_ for sycl More...
 
struct  Evaluator< internal::ops_category::GlobalNeighbourOP, OutputIndex, Offset, LC, LR, internal::Assign< LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >
 Partial specialisation of the Evaluator when the expression is an internal::Assign expression and the internal::ops_category is GlobalNeighbourOP. More...
 
struct  Evaluator< internal::ops_category::NeighbourOP, OutputIndex, Offset, LC, LR, internal::Assign< LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >
 Partial specialisation of the Evaluator when the expression is an internal::Assign expression and the internal::ops_category is NeighbourOP. More...
 
struct  Evaluator< internal::ops_category::PointOP, Output_Index, Offset, LC, LR, internal::Assign< LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >
 Partial specialisation of the Evaluator when the expression is an internal::Assign expression and the internal::ops_category is PointOP. More...
 
struct  Evaluator< ops_category::PointOP, OutputIndex, Offset, LC, LR, ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >, Loc, Params... >
 Partial specialisation of the Evaluator when the expression is an ParallelCopy expression and the ops_category is PointOP. More...
 
struct  Evaluator< ops_category::NeighbourOP, OutputIndex, Offset, LC, LR, ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >, Loc, Params... >
 Partial specialisation of the Evaluator when the expression is an ParallelCopy expression and the ops_category is NeighbourOP. More...
 
struct  Evaluator< ops_category::GlobalNeighbourOP, OutputIndex, Offset, LC, LR, ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >, Loc, Params... >
 Partial specialisation of the Evaluator when the expression is an ParallelCopy expression and the ops_category is GlobalNeighbourOP. More...
 
struct  EvalExpr< Assign< LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >
 Partial specialisation of the EvalExpr when the expression is an Assign expression. More...
 
struct  EvalExpr< LeafNode< PlaceHolder< Memory_Type, N, Cols, Rows, Sc >, LVL >, Loc, Params... >
 Partial specialisation of the EvalExpr when the expression is an LeafNode expression and the internal::ops_category is NeighbourOP. More...
 
struct  EvalExpr< RBiOP< BI_OP, LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >
 Partial specialisation of the EvalExpr when the expression is an RBiOP(binary operation) expression. More...
 
struct  EvalExpr< RUnOP< UN_OP, Nested, Cols, Rows, LfType, LVL >, Loc, Params... >
 Partial specialisation of the EvalExpr when the expression is an RUnOP(unary operation) expression. More...
 
struct  EvalExpr< RDCN< C_OP, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >
 Partial specialisation of the EvalExpr when the expression is an RDCN(reduction operation) expression. More...
 
struct  EvalExpr< StnFilt< C_OP, Halo_T, Halo_L, Halo_B, Halo_R, LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >
 Partial specialisation of the EvalExpr when the expression is an StnFilt(stencil with filter operation) expression. More...
 
struct  EvalExpr< StnNoFilt< C_OP, Halo_T, Halo_L, Halo_B, Halo_R, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >
 Partial specialisation of the EvalExpr when the expression is an StnNoFilt(stencil without filter operation) expression. More...
 
struct  GetGlobalRange
 GetGlobalRange is used to check the range when the halo is applied template parameters. More...
 
struct  GetGlobalRange< 0, DimSize >
 specialisation of GetGlobalRange when the Halo is 0 More...
 
struct  Fill
 The Fill is used to load a rectangle neighbour area from global memory to local memory. More...
 
struct  Trait
 This struct is used to trait the value type inside the accessor. More...
 
struct  Trait< cl::sycl::accessor< elementType, dimensions, accessMode, accessTarget > >
 specialisation of the Trait class when the accessor is sycl accessor More...
 
struct  Trait< visioncpp::internal::ConstMemory< T > >
 specialisation of the Trait class when the accessor is on ConstMemory More...
 
struct  Index_Finder
 is used to find the index required to access the accessor inside the buffer. More...
 
struct  Index_Finder< N, Indx, memory_type::Const, Sc >
 specialisation of the Index_Finder when the memory_type is a constant variable More...
 
struct  Index_Finder< N, Indx, LeafType, scope::Constant >
 specialisation of the Index_Finder when the memory located on device constant memory More...
 
struct  Evaluator
 the root of the expression tree. More...
 
struct  EvalExpr
 eval_global_neighbour function: More...
 
struct  OutputLocation
 This is used to find whether a node should use a global memory output or a local memory output is created for that node. More...
 
struct  OutputLocation< true, OutOffset >
 specialisation of the OutputLocation when the node is the immediate child of the root node More...
 
struct  Fill< LeafNode< PlaceHolder< memory_type::Const, N, Cols, Rows, Sc >, LVL >, Loc, Params... >
 Partial specialisation of the Fill when the LeafNode contains the const variable. More...
 
struct  Fill< LeafNode< PlaceHolder< Memory_Type, N, Cols, Rows, scope::Constant >, LVL >, Loc, Params... >
 Partial specialisation of the Fill when the LeafNode contains a sycl buffer created on constant memory. More...
 
struct  Fill< LeafNode< PlaceHolder< Memory_Type, N, Cols, Rows, Sc >, LVL >, Loc, Params... >
 Partial specialisation of the Fill when the LeafNode contains the sycl buffer on the global memory. More...
 
struct  FuseExpr
 the FuseExpr when the expression type is not a terminal node (leafNode). More...
 
struct  NoFuseExpr
 The NoFuseExpr struct is used to generate one device kernel per each non-terminal node in the expression. More...
 
struct  IfExprExecNeeded
 IfExprExecNeeded is used to decide: 1) the expression should force its children to launch a separate kernel and execute the code 2) the expression should create a new subexpression tree with the result of its children execution; execute the new sub expression and return the LeafNode as a result. More...
 
struct  Executor
 The Executor struct is used to specialise the execute function for different avaiable policies at compile time. More...
 
struct  Executor< policy::Fuse, LC, LR, LCT, LRT, Expr, DeviceT >
 specialisaton of Execute function when the policy is fuse. More...
 
struct  Executor< policy::NoFuse, LC, LR, LCT, LRT, Expr, DeviceT >
 
struct  SubExprExecute
 it is used to statically determine whether or not a subexpression execution is needed. More...
 
struct  SubExprExecute< false, ExecPolicy, LC, LR, LCT, LRT, Expr, DeviceT >
 specialisation of the status of when there is no need for subexpression execution More...
 
struct  SubExprRes
 The definition is in SubExprRes file. More...
 
struct  SubExprRes< LC, LR, LCT, LRT, LVL1, internal::LeafNode< RHS, LVL2 >, DeviceT >
 specialisation of the SubExprRes when it is a LeafNode. More...
 
struct  ParentForcedExecute
 to check whether or not the parent of the Expr requires that the expr to be executed and the LeafNode as a result to be returned. More...
 
struct  ParentForcedExecute< true, Expr, DeviceT >
 specialisation of ParentForcedExecute when the condition is true More...
 
struct  ParentForcedExecute< false, Expr, DeviceT >
 specialisation of ParentForcedExecute when the condition is false More...
 
struct  IfExprExecNeeded< false, ParentConds, internal::expr_category::Unary, Expr, DeviceT >
 the specialisation of the IfExprExecNeeded when the decision for executing the children of the expression is false and the expression category is unary. More...
 
struct  IfExprExecNeeded< true, ParentConds, internal::expr_category::Unary, Expr, DeviceT >
 the specialisation of the IfExprExecNeeded when the decision for executing the children of the expression is true and the expression category is unary. More...
 
struct  IfExprExecNeeded< false, ParentConds, internal::expr_category::Binary, Expr, DeviceT >
 the specialisation of the IfExprExecNeeded when the decision for executing the children of the expression is false and the expression category is binary. More...
 
struct  IfExprExecNeeded< true, ParentConds, internal::expr_category::Binary, Expr, DeviceT >
 the specialisation of the IfExprExecNeeded when the decision for executing the children of the expression is true and the expression category is binary. More...
 
struct  FuseExpr< LC, LR, LCT, LRT, LeafNode< RHS, LVL >, DeviceT >
 specialisation of Fuse struct when the Expr is a terminal node (leafNode) More...
 
struct  NoFuseExpr< LC, LR, LCT, LRT, internal::expr_category::Unary, LeafNode< RHS, LVL >, DeviceT >
 The specialisation of the NoFuseExpr for LeafNode. More...
 
struct  NoFuseExpr< LC, LR, LCT, LRT, internal::expr_category::Unary, Expr, DeviceT >
 The specialisation of the NoFuseExpr for Expression node with one operand. More...
 
struct  NoFuseExpr< LC, LR, LCT, LRT, internal::expr_category::Binary, Expr, DeviceT >
 The specialisation of the NoFuseExpr for Expression node with two operands. More...
 
struct  NoFuseExpr< LC, LR, LCT, LRT, internal::expr_category::Binary, Assign< LHS, RHS, Cols, Rows, LeafType, LVL >, DeviceT >
 The specialisation of the NoFuseExpr for Assign where it is a root node and has its own lhs leaf node. More...
 
struct  PlaceHolder
 PlaceHolder is used to replace the Vision Memory in the LeafNode containing sycl buffer. More...
 
struct  LocalOutput
 LocalOutput:Local output is used for neighbour operation in order to create a local memory for the output of non-terminal nodes in the expression tree when the NeighbourOP is used. More...
 
struct  LeafCount
 is used to count the total number of leafNode in the expression tree. More...
 
struct  LocalMemCount
 is used to count the total number of local memory for the subxpression. More...
 
struct  MakePlaceHolderExprHelper
 it is used to create the PlaceHolder expression. More...
 
struct  LeafCount< expr_category::Unary, LeafNode< RHS, LVL > >
 specialisation of LeafCount when the node is a LeafNode template parameters: More...
 
struct  LeafCount< expr_category::Unary, Expr >
 specialisation of LeafCount when the node has one child template parameters: More...
 
struct  LeafCount< expr_category::Binary, Expr >
 specialisation of LeafCount when the node has two children template parameters: More...
 
struct  LocalMemCount< expr_category::Unary, LeafNode< PlaceHolder< memory_type::Const, N, Cols, Rows, scope::Global >, LVL > >
 Partial specialisation of the LocalmemCount when the LeafNode contains the const variable. More...
 
struct  LocalMemCount< expr_category::Unary, LeafNode< PlaceHolder< MemoryType, N, Cols, Rows, scope::Constant >, LVL > >
 Partial specialisation of the LocalmemCount when the LeafNode contains a sycl buffer created on constant memory. More...
 
struct  LocalMemCount< expr_category::Unary, LeafNode< RHSExpr, LVL > >
 specialisation of LocalmemCount when the node is a LeafNode template parameters: More...
 
struct  LocalMemCount< expr_category::Unary, Expr >
 template parameters: More...
 
struct  LocalMemCount< expr_category::Binary, Expr >
 specialisation of LocalmemCount when the node has two children template parameters: More...
 
struct  LocalMemCount< expr_category::Binary, Assign< LHSExpr, RHSExpr, Cols, Rows, LeafType, LVL > >
 Specialisation of ExtractAccessor class where the expression node is Assign. More...
 
struct  LocalMemCount< expr_category::Binary, ParallelCopy< LHSExpr, RHSExpr, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LeafType, LVL > >
 Specialisation of ExtractAccessor class where the expression node is is ParallelCopy (partial assign) More...
 
struct  OutputAccessor
 OutputAccessor struct is used to generate an accessor when the node is not root. More...
 
struct  OutputAccessor< false, LeafType, LC, LR, OutType >
 specialisation of OutputAccessor when a node is not a root node. More...
 
struct  LocalOutput< false, IsRoot, LC, LR, LeafNode< VisionMemory< in, element_category, memory_type::Const, Sclr, Width, Height, Sclr, 1, scope::Global, LVL >, LVL > >
 specialisation of the LocalOutput for leaf node when the vision memory is a const variable. More...
 
struct  LocalOutput< false, IsRoot, LC, LR, LeafNode< VisionMemory< in, element_category, Memory_Type, Scalar, Width, Height, ElementTp, Elements, scope::Constant, LVL >, LVL > >
 specialisation of the LocalOutput for leaf node when the vision memory is a constant buffer. More...
 
struct  LocalOutput< false, IsRoot, LC, LR, LeafNode< RHS, LVL > >
 LocalOutput specialisation for leaf node it creates the local accessor that contains the data of the leaf node from global memory. More...
 
struct  LocalOutput< false, IsRoot, LC, LR, RUnOP< OP, RHSExpr, Cols, Rows, LeafType, LVL > >
 LocalOutput specialisation for unary operation(RUnOP) it creates the local accessor to store the output of unary operation which is going to be used as an output for its parent. More...
 
struct  LocalOutput< false, IsRoot, LC, LR, RBiOP< OP, LHSExpr, RHSExpr, Cols, Rows, LeafType, LVL > >
 LocalOutput specialisation for binary operation(RBiOP) it creates the local accessor to store the output of binary operation which is going to be used as an output for its parent. More...
 
struct  LocalOutput< false, IsRoot, LC, LR, StnFilt< OP, Halo_T, Halo_L, Halo_B, Halo_R, LHSExpr, RHSExpr, Cols, Rows, LeafType, LVL > >
 LocalOutput specialisation for binary neighbour operation(StnFilt). More...
 
struct  LocalOutput< false, IsRoot, LC, LR, StnNoFilt< OP, Halo_T, Halo_L, Halo_B, Halo_R, RHSExpr, Cols, Rows, LeafType, LVL > >
 LocalOutput specialisation for unary neighbour operation(StnNoFilt). More...
 
struct  LocalOutput< false, IsRoot, LC, LR, RDCN< OP, RHSExpr, Cols, Rows, LeafType, LVL > >
 LocalOutput specialisation for reduction neighbour operation(RDCN). More...
 
struct  LocalOutput< false, IsRoot, LC, LR, ParallelCopy< LHSExpr, RHSExpr, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LeafType, LVL > >
 LocalOutput specialisation for point operation(ParallelCopy). More...
 
struct  LocalOutput< false, IsRoot, LC, LR, Assign< LHSExpr, RHSExpr, Cols, Rows, LeafType, LVL > >
 LocalOutput specialisation for point operation(Assign). More...
 
struct  MakePlaceHolderExprHelper< internal::expr_category::Unary, LeafNode< RHS, LVL >, N >
 specialisation of MakePlaceHolderExprHelper where the node is leaf node. More...
 
struct  MakePlaceHolderExprHelper< internal::expr_category::Unary, Expr, N >
 specialisation of MakePlaceHolderExprHelper where the operation of the node is unary (the node has one child). More...
 
struct  MakePlaceHolderExprHelper< internal::expr_category::Binary, Expr, N >
 specialisation of MakePlaceHolderExprHelper where the operation of the node is binary (the node has two children). More...
 
struct  LeafNode< PlaceHolder< Memory_Type, N, C, R, Sc >, LVL >
 The specialisation of LeafNode for the PlaceHolder. More...
 
struct  CreatePyramidTupleType
 CreatePyramidTupleType: This file is used to create each output element type for each downsampling output of the pyramid memory. More...
 
struct  CreatePyramidTuple
 CreatePyramidTuple. More...
 
struct  PyramidLeafNode
 
struct  CreatePyramidTupleType< true, Cols, Rows, LeafType, Depth, CurrentDepth, LHS, ChildType... >
 specialisation of the CreatePyramidTupleType when the SatisfyingConds is true. More...
 
struct  CreatePyramidTuple< true, Cols, Rows, LeafType, Depth, CurrentDepth, LHS >
 specialisation of the CreatePyramidTuple when the SatisfyingConds is true. More...
 
struct  PyramidExecuteAutoMemGen
 here we execute the pyramid; automatically construct the output tuple based on the depth of the pyramid; and construct the kernels. More...
 
struct  PyramidExecuteAutoMemGen< true, Fltr2DOP, DownSmplOP, Cols, Rows, LeafType, OffsetCol, OffsetRow, LVL, LC, LR, LCT, LRT, Depth, CurrentDepth, LHS, RHS, Fltr2D, PyramidMem, DeviceT >
 specialisation of the PyramidExecuteAutoMemGen when the SatisfyingConds is true. More...
 
struct  PyramidAutomemGen
 PyramidDownGen is used to construct a pyramid node in the expression tree with general Filter2D and general DownSmplOP functors. More...
 
struct  PyramidExecuteAutoMemSep
 here we execute the pyramid; automatically construct the output tuple based on the depth of the pyramid; and construct the kernels. More...
 
struct  PyramidExecuteAutoMemSep< true, SepFltrColOP, SepFltrRowOP, DownSmplOP, Cols, Rows, LeafType, OffsetCol, OffsetRow, LVL, LC, LR, LCT, LRT, Depth, CurrentDepth, LHS, RHS, SepFilterCol, SepFilterRow, PyramidMem, DeviceT >
 specialisation of the PyramidExecuteAutoMemSep when the SatisfyingConds is true. More...
 
struct  PyramidAutomemSep
 PyramidAutomemSep is used to construct a pyramid node in the expression tree with two separable Filter for row and column and general DownSmplOP functors. More...
 
struct  GlobalUnaryOp
 This class is used to encapsulate the global unary functor and the types of each operand in this functor. More...
 
struct  LocalUnaryOp
 This class is used to encapsulate the local unary functor and the types of each operand in this functor. More...
 
struct  LocalBinaryOp
 This class is used to encapsulate the local binary functor and the types of each operand in this functor. More...
 
struct  PixelUnaryOp
 This class is used to encapsulate the unary point operation functor and the types of each operand in this functor. More...
 
struct  PixelBinaryOp
 This class is used to encapsulate the binary point operation functor and the types of each operand in this functor. More...
 
struct  RDCN
 The definition is in RDCN file. More...
 
struct  StnNoFilt
 The definition is in StnNoFilt file. More...
 
struct  StnFilt
 The definition is in StnFilt file. More...
 
struct  Assign
 The definition is in Assign file. More...
 
struct  LeafNode
 the definition is in LeafNode. More...
 
struct  ParallelCopy
 The definition is in ParallelCopy file. More...
 
struct  InheritTypeBinary
 This struct is used to extract the output type of the binary operation from both input. More...
 
struct  OpTP
 This struct is used to determine the operation type for binary operation based on the operation type of its children. More...
 
struct  OpTP< false, internal::ops_category::PointOP, RhsOP >
 specialisation of the PointOP category where the two operation types are not equal and the lhs operation type is PointOp More...
 
struct  OpTP< false, LhsOP, internal::ops_category::PointOP >
 specialisation of the PointOP category where the two operation types are not equal and the rhs operation type is PointOp More...
 
struct  OpTP< true, OPType, OPType >
 specialisation of the PointOP category where the two operation types are equal More...
 
struct  RBiOP
 The definition is in RBiOP file. More...
 
struct  RUnOP
 The definition is in RUnOP file. More...
 
class  Device_
 class used to implement the execution of the expression tree. More...
 
struct  VirtualMemory
 the definition is in VirtualMemory More...
 
struct  ConstMemory
 The definition can be found in ConstMemory. More...
 
struct  MemoryProperties
 This file is used to detect the ChannelType ElementCategory {basic or struct}, and the channel size of a row input data. More...
 
struct  MemoryProperties< unsigned char >
 Specialisation of the MemoryProperties when the output is unsigned char. More...
 
struct  MemoryProperties< char >
 Specialisation of the MemoryProperties when the output is char. More...
 
struct  MemoryProperties< unsigned short >
 Specialisation of the MemoryProperties when the output is unsigned short. More...
 
struct  MemoryProperties< short >
 Specialisation of the MemoryProperties when the output is short. More...
 
struct  MemoryProperties< unsigned int >
 Specialisation of the MemoryProperties when the output is unsigned int. More...
 
struct  MemoryProperties< int >
 Specialisation of the MemoryProperties when the output is int. More...
 
struct  MemoryProperties< float >
 Specialisation of the MemoryProperties when the output is float. More...
 
struct  VisionMemory
 Definition of VisionMemory. More...
 
struct  OutputMemory
 OutputMemory is used to deduce the output type of each node in the expression tree by using certain parameters from its child(ren). More...
 
struct  ImageProperties
 this file is used to create the image properties required to create opencl image for different types of pixel More...
 
struct  SyclRange
 This is used to determine the range for creating a syclbuffer based on the memory dimension template parameters: More...
 
struct  SyclRange< 2 >
 specialisation of the SyclRange when the dimension is 2 More...
 
struct  SyclRange< 1 >
 specialisation of the SyclRange when the dimension is 1 More...
 
struct  SyclScope
 determines the memory target on the device based on the memory type and suggested target. More...
 
struct  SyclScope< LeafType, scope::Global >
 
struct  SyclScope< LeafType, scope::Host_Buffer >
 
struct  SyclScope< LeafType, scope::Local >
 
struct  SyclScope< LeafType, scope::Constant >
 
struct  SyclScope< memory_type::Image, scope::Global >
 specialisation of the SyclScope when the memory type is Image More...
 
struct  ConvertToVisionScope
 this struct is used to convert the sycl target to visioncpp target More...
 
struct  ConvertToVisionScope< cl::sycl::access::target::global_buffer >
 specialisation of ConvertToVisionScope where the target is global_buffer More...
 
struct  ConvertToVisionScope< cl::sycl::access::target::host_buffer >
 specialisation of ConvertToVisionScope where the target is host_buffer More...
 
struct  ConvertToVisionScope< cl::sycl::access::target::local >
 specialisation of ConvertToVisionScope where the target is local More...
 
struct  ConvertToVisionScope< cl::sycl::access::target::constant_buffer >
 specialisation of ConvertToVisionScope where the target is constant_buffer More...
 
struct  ConvertToVisionScope< cl::sycl::access::target::image >
 specialisation of ConvertToVisionScope where the target is image More...
 
struct  SyclAccessor
 This struct is used to create a sycl accessor type based on access mode; dimension and memory type. More...
 
struct  SyclAccessor< memory_type::Image, Dim, AccMd, ElementType, Scalar, scope >
 specialisation of the SyclAccessor when the memory_type is Image More...
 
struct  SyclAccessor< memory_type::Const, Dim, AccMd, ElementType, Scalar, scope >
 specialisation of the SyclAccessor when the memory_type is constant variable More...
 
struct  SyclMem
 SyclMem is used to create VisionMemory data storage. More...
 
struct  SyclMem< true, LeafType, Dim, ElementType >
 specialisation of SyclMem when there is host memory allocated. More...
 
struct  SyclMem< false, LeafType, Dim, ElementType >
 specialisation of SyclMem when there is no host memory allocated. More...
 
struct  SyclMem< true, memory_type::Image, Dim, ElementType >
 specialisation of SyclMem when the memory_type is Image More...
 
struct  SyclMem< true, memory_type::Const, Dim, ElementType >
 specialisation of SyclMem when the memory_type is Constant variable More...
 
struct  SyclMem< false, memory_type::Image, Dim, ElementType >
 specialisation of the SyclMem when the memory_type is Image and no device pointer is allocated to the memory. More...
 
struct  MemDimension
 this is used to determine the dimension of the memory based on the memory type template parameters: More...
 
struct  MemDimension< memory_type::Buffer1D >
 specialisation of the MemDimension when the memory type is Buffer1D More...
 
struct  MemDimension< memory_type::Host >
 specialisation of the MemDimension when the memory type is Host More...
 
struct  MemDimension< memory_type::Const >
 specialisation of the MemDimension when the memory type is constant variable More...
 
struct  CreateSyclBuffer
 This class is used to instantiate the sycl memory based on the memory types. More...
 
struct  CreateSyclBuffer< memory_type::Image, ElemType, Scalar, VisionMem, RNG >
 specialisation of create CreateSyclBuffer when the memory type is image More...
 
struct  CreateSyclBuffer< memory_type::Const, ElemType, Scalar, VisionMem, RNG >
 specialisation of create CreateSyclBuffer when the memory type is constant variable More...
 
struct  BufferUpdate
 This is used to update the Vision Memory with new value update sycl buffer at the moment we use ptr.reset() because it was faster than getting the host pointer and updating it in the host side. More...
 
struct  BufferUpdate< memory_type::Image, Rows, Cols, ElemType, Scalar, VisionMem >
 specialisation of the BufferUpdate when the memory_type is Image More...
 
struct  BufferUpdate< memory_type::Const, Rows, Cols, ElemType, Scalar, VisionMem >
 specialisation of the BufferUpdate when the memory_type is Constant variable More...
 
struct  Coordinate
 Coordinate is used to specify local/global offset for local/global access to the local/global memory for each thread on the device. More...
 
struct  LocalNeighbour
 LocalNeighbour is used to provide local access for each element of the local memory based on the Coordinate passed by eval expression. More...
 
struct  GlobalNeighbour
 GlobalNeighbour is used to provide local access for each element of the global memory based on the Coordinate passed by eval expression. More...
 
struct  ConstNeighbour
 ConstNeighbour is used to provide global access to the constant memory. More...
 
struct  CompareIdBasedScope
 this is used for range check to make sure the index is within the range. More...
 
struct  CompareIdBasedScope< false, LDSize, GDSize, T >
 specialisation of the CompareIdBasedScope when the Conds is false in this case the range check is with the global size template parameters: More...
 
struct  GetIdBasedScope
 brief This is used to get the correct Id based on the condition. More...
 
struct  GetIdBasedScope< false, T >
 specialisation of the GetIdBasedScope when the condition is false. More...
 
struct  MemoryTrait
 This class is used to determine the ElementType of accessor template parameters. More...
 
struct  MemoryTrait< memory_type::Host, T >
 specialisation of MemoryTrait when the LeafType is Host More...
 
struct  AssignValueToArray
 
struct  AssignValueToArray< false, K, PixelType, Params... >
 

Functions

template<size_t Halo, size_t DimSize>
static size_t get_global_range (size_t index)
 template deduction function for get_global_range template parameters: More...
 
template<size_t Halo_Top, size_t Halo_Left, size_t Halo_Butt, size_t Halo_Right, size_t Offset, size_t LC, size_t LR, size_t Sc, typename Expr , typename Loc , typename... Params>
static void fill_local_neighbour (Loc &cOffset, const internal::tools::tuple::Tuple< Params... > &t)
 template deduction for Fill struct. More...
 
template<size_t Offset, size_t LC, size_t LR, typename Expr , typename Loc , typename... Params>
void eval (Loc &cOffset, const tools::tuple::Tuple< Params... > &t)
 deduction function for Evaluator struct. More...
 
template<size_t Halo_Top, size_t Halo_Left, size_t Halo_Butt, size_t Halo_Right, size_t Offset, size_t LC, size_t LR, typename Expr , typename Loc , typename... Params>
static void fill_local_neighbour (Loc &cOffset, const tools::tuple::Tuple< Params... > &t)
 
template<size_t LC, size_t LR, size_t LCT, size_t LRT, size_t LVL, typename Expr , typename DeviceT >
auto get_subexpr_executor (Expr &expr, const DeviceT &dev) -> typename internal::SubExprRes< LC, LR, LCT, LRT, LVL, Expr, DeviceT >::Type
 template deduction for SubExprRes. More...
 
template<size_t LC, size_t LR, size_t LCT, size_t LRT, typename Expr , typename DeviceT >
auto get_subexpr_executor (Expr &expr, const DeviceT &dev) -> typename internal::SubExprRes< LC, LR, LCT, LRT, 1+Expr::Level, Expr, DeviceT >::Type
 
template<bool Conds, bool ParentConds, typename Expr , size_t LC, size_t LR, size_t LCT, size_t LRT, typename NestedExpr , typename DeviceT >
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 More...
 
template<bool Conds, bool ParentConds, typename Expr , size_t LC, size_t LR, size_t LCT, size_t LRT, typename LHSExpr , typename RHSExpr , typename DeviceT >
auto execute_expr (LHSExpr lhsExpr, RHSExpr rhsExpr, const DeviceT &dev) -> decltype(internal::IfExprExecNeeded< Conds, ParentConds, internal::expr_category::Binary, Expr, DeviceT >::template execute_expr< LC, LR, LCT, LRT >(lhsExpr, rhsExpr, dev))
 template deduction for IfExprExecNeeded when the expression category is Binary More...
 
template<size_t LC, size_t LR, size_t LCT, size_t LRT, typename Expr , typename DeviceT >
void fuse (Expr expr, const DeviceT &dev)
 function fuse More...
 
template<size_t LC, size_t LR, size_t LCT, size_t LRT, typename Expr , typename DeviceT >
void no_fuse (Expr expr, const DeviceT &dev)
 template deduction function for no_fuse expression More...
 
template<size_t LC, size_t LR, typename Expr >
auto create_local_accessors (cl::sycl::handler &cgh) -> decltype(LocalOutput< Expr::Operation_type !=ops_category::NeighbourOP, true, LC, LR, Expr >::getTuple(cgh))
 create_local_accessors is a deduction function for creating local accessor. More...
 
template<size_t Cols, size_t Rows, size_t Depth, size_t Current_Depth, typename LHS >
CreatePyramidTupleType< false, Cols, Rows, LHS::Type::LeafType, Depth, 0, LHS >::Type create_pyramid_memory ()
 create_pyramid_memory template deduction function for CreatePyramidTuple struct. More...
 
template<typename OP , size_t Halo_T, size_t Halo_L, size_t Halo_B, size_t Halo_R, size_t Cols, size_t Rows, size_t LeafType, typename RHS >
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 defined by a user. More...
 
template<typename OP , size_t Cols, size_t Rows, size_t LeafType, typename LHS , typename RHS >
auto point_operation (LHS lhs, RHS rhs) -> RBiOP< internal::PixelBinaryOp< OP, typename LHS::OutType, typename RHS::OutType >, LHS, RHS, Cols, Rows, LeafType, 1+internal::tools::StaticIf<(LHS::Level > RHS::Level), LHS, RHS >::Type::Level >
 template deduction for the RBiOP struct where user determines the Column, Row, and memory_type of the output. More...
 
template<bool Conds, typename Expr , size_t LC, size_t LR, size_t LRT, size_t LCT, typename NestedExpr , typename DeviceT >
Expr::Sub_expression_Type execute_expr (NestedExpr, const DeviceT &)
 template deduction for IfExprExecNeeded when the expression category is unary More...
 
template<bool Conds, typename Expr , size_t LC, size_t LR, size_t LRT, size_t LCT, typename LHSExpr , typename RHSExpr , typename DeviceT >
Expr::Sub_expression_Type execute_expr (LHSExpr, RHSExpr, const DeviceT &)
 template deduction for IfExprExecNeeded when the expression category is Binary More...
 
template<size_t Dim>
cl::sycl::range< Dim > get_range (size_t r, size_t c)
 function get_range More...
 
template<size_t LeafType, typename ElemType , typename Scalar , typename VisionMem , typename RNG >
void create_sycl_buffer (std::shared_ptr< VisionMem > &ptr, Scalar *dt, RNG rng)
 function create_sycl_buffer More...
 
template<size_t LeafType, typename ElemType , typename Scalar , typename VisionMem , typename RNG >
void create_sycl_buffer (std::shared_ptr< VisionMem > &ptr, VisionMem dt, RNG rng)
 function create_sycl_buffer More...
 
template<size_t LeafType, typename ElemType , typename Scalar , typename VisionMem , typename RNG >
void create_sycl_buffer (std::shared_ptr< VisionMem > &ptr, RNG rng)
 function create_sycl_buffer More...
 
template<size_t LeafType, size_t Rows, size_t Cols, typename ElemType , typename Scalar , typename VisionMem >
void buffer_update (std::shared_ptr< VisionMem > &ptr, Scalar *dt)
 function buffer_update More...
 
template<size_t LC, size_t LR, typename ItemID >
Coordinate< LC, LR, ItemID > memLocation (ItemID itemID)
 deduction function for Coordinate More...
 
template<bool Conds, size_t LDSize, size_t GDSize, typename T >
static bool get_compare (T l, int i, T g)
 function get_compare template deduction for CompareIdBasedScope template parameters: More...
 
template<bool Conds, typename T >
static T id_val (T l, T g)
 function id_val More...
 
static size_t calculate_index (size_t c, size_t r, size_t cols, size_t rows)
 function calculate_index More...
 

Detailed Description

Internal implementations.

Items from this scope should not be exposed to the end user.

Function Documentation

◆ buffer_update()

template<size_t LeafType, size_t Rows, size_t Cols, typename ElemType , typename Scalar , typename VisionMem >
void visioncpp::internal::buffer_update ( std::shared_ptr< VisionMem > &  ptr,
Scalar *  dt 
)
inline

function buffer_update

template deduction function for BufferUpdate template parameters:

Template Parameters
LeafType: is the memory type
Rowsis the row size of the buffer
Colsis the column size of the buffer
ElemTypeis the type of element in the buffer
Scalaris the type of each channel of the element
VisionMemis the created SyclMem function parameters:
Parameters
ptr: is the shared_ptr containing the SyclMem
dtis the pointer containing the new value for the buffer
Returns
void

Definition at line 556 of file memory.hpp.

◆ calculate_index()

static size_t visioncpp::internal::calculate_index ( size_t  c,
size_t  r,
size_t  cols,
size_t  rows 
)
inlinestatic

function calculate_index

this function is used to calculate the index access of the memory pointer on the device. parameters:

Parameters
c: column index
r: row index
cols: column dimension
rows: row dimension
Returns
size_t

Definition at line 152 of file memory_access.hpp.

Referenced by visioncpp::internal::LocalNeighbour< T >::at(), visioncpp::internal::GlobalNeighbour< T >::at(), visioncpp::internal::ConstNeighbour< T >::at(), visioncpp::internal::Evaluator< internal::ops_category::PointOP, Output_Index, Offset, LC, LR, internal::Assign< LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >::eval(), visioncpp::internal::Evaluator< ops_category::PointOP, OutputIndex, Offset, LC, LR, ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >, Loc, Params... >::eval(), visioncpp::internal::Evaluator< ops_category::NeighbourOP, OutputIndex, Offset, LC, LR, ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >, Loc, Params... >::eval(), visioncpp::internal::EvalExpr< Assign< LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >::eval_global_neighbour(), visioncpp::internal::EvalExpr< RDCN< C_OP, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >::eval_global_neighbour(), visioncpp::internal::EvalExpr< Assign< LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >::eval_neighbour(), visioncpp::internal::EvalExpr< RBiOP< BI_OP, LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >::eval_neighbour(), visioncpp::internal::EvalExpr< RUnOP< UN_OP, Nested, Cols, Rows, LfType, LVL >, Loc, Params... >::eval_neighbour(), visioncpp::internal::EvalExpr< RDCN< C_OP, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >::eval_neighbour(), visioncpp::internal::EvalExpr< StnFilt< C_OP, Halo_T, Halo_L, Halo_B, Halo_R, LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >::eval_neighbour(), visioncpp::internal::EvalExpr< StnNoFilt< C_OP, Halo_T, Halo_L, Halo_B, Halo_R, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >::eval_neighbour(), visioncpp::internal::EvalExpr< LeafNode< PlaceHolder< Memory_Type, N, Cols, Rows, Sc >, LVL >, Loc, Params... >::eval_point(), and visioncpp::internal::Fill< LeafNode< PlaceHolder< Memory_Type, N, Cols, Rows, Sc >, LVL >, Loc, Params... >::fill_neighbour().

Here is the caller graph for this function:

◆ create_local_accessors()

template<size_t LC, size_t LR, typename Expr >
auto visioncpp::internal::create_local_accessors ( cl::sycl::handler &  cgh) -> decltype(LocalOutput<Expr::Operation_type != ops_category::NeighbourOP, true, LC, LR, Expr>::getTuple(cgh))
inline

create_local_accessors is a deduction function for creating local accessor.

parameters:

Parameters
cghsycl command group handler
Returns
Tuple

Definition at line 323 of file local_output.hpp.

References visioncpp::internal::ops_category::NeighbourOP.

◆ create_pyramid_memory()

template<size_t Cols, size_t Rows, size_t Depth, size_t Current_Depth, typename LHS >
CreatePyramidTupleType< false, Cols, Rows, LHS::Type::LeafType, Depth, 0, LHS >::Type visioncpp::internal::create_pyramid_memory ( )
inline

create_pyramid_memory template deduction function for CreatePyramidTuple struct.

template parameters: the recursive creation of the pyramid output tuple.

Template Parameters
Colsdetermines the column size of the input pyramid
Rowsdetermines the row size of the input pyramid
LeafTypedetermines the type of the leafNode {Buffer2D, Buffer1D, Host, Image}
Depthrepresents the depth of down sampling
CurrentDepthrepresents the number of outputs created so far in the recursion
LHSis the final output of the pyramid combining all the node together. function parameters:
Returns
CreatePyramidTupleType

Definition at line 149 of file pyramid_mem.hpp.

◆ create_sycl_buffer() [1/3]

template<size_t LeafType, typename ElemType , typename Scalar , typename VisionMem , typename RNG >
void visioncpp::internal::create_sycl_buffer ( std::shared_ptr< VisionMem > &  ptr,
RNG  rng 
)
inline

function create_sycl_buffer

template deduction for CreateSyclBuffer struct when there is host pointer template parameters:

Template Parameters
LeafTypedetermines the memory type
ElemType: determines the type of the element in each memory
Scalar: determines the type of each channel of each element
VisionMemrepresent the type of the memory created by using SyclMem
RNG: the sycl range type for creating memory function parameters parameters:
Parameters
ptr: shared_ptr containing the VisionMem
rng: the sycl range for creating buffer
Returns
void

Definition at line 468 of file memory.hpp.

References visioncpp::internal::CreateSyclBuffer< LeafType, ElemType, Scalar, VisionMem, RNG >::create_buffer().

Here is the call graph for this function:

◆ create_sycl_buffer() [2/3]

template<size_t LeafType, typename ElemType , typename Scalar , typename VisionMem , typename RNG >
void visioncpp::internal::create_sycl_buffer ( std::shared_ptr< VisionMem > &  ptr,
Scalar *  dt,
RNG  rng 
)
inline

function create_sycl_buffer

template deduction for CreateSyclBuffer struct when there is host pointer template parameters:

Template Parameters
LeafTypedetermines the memory type
ElemType: determines the type of the element in each memory
Scalar: determines the type of each channel of each element
VisionMemrepresent the type of the memory created by using SyclMem
RNG: the sycl range type for creating memory function parameters parameters:
Parameters
ptr: shared_ptr containing the VisionMem
dt: the input pointer for creating buffer
rng: the sycl range for creating buffer
Returns
void

Definition at line 422 of file memory.hpp.

References visioncpp::internal::CreateSyclBuffer< LeafType, ElemType, Scalar, VisionMem, RNG >::create_buffer().

Here is the call graph for this function:

◆ create_sycl_buffer() [3/3]

template<size_t LeafType, typename ElemType , typename Scalar , typename VisionMem , typename RNG >
void visioncpp::internal::create_sycl_buffer ( std::shared_ptr< VisionMem > &  ptr,
VisionMem  dt,
RNG  rng 
)
inline

function create_sycl_buffer

template deduction for CreateSyclBuffer struct. this one create another buffer from accepting an input buffer. It is used for creating sub-buffer template parameters:

Template Parameters
LeafTypedetermines the memory type
ElemType: determines the type of the element in each memory
Scalar: determines the type of each channel of each element
VisionMemrepresent the type of the memory created by using SyclMem
RNG: the sycl range type for creating memory function parameters parameters:
Parameters
ptr: shared_ptr containing the VisionMem
rng: the sycl range for creating buffer
dt: the input buffer for creating new sub-buffer from it
Returns
void

Definition at line 446 of file memory.hpp.

References visioncpp::memory_type::Const.

◆ eval()

template<size_t Offset, size_t LC, size_t LR, typename Expr , typename Loc , typename... Params>
void visioncpp::internal::eval ( Loc &  cOffset,
const tools::tuple::Tuple< Params... > &  t 
)
inline

deduction function for Evaluator struct.

This will count N+1 where the number of memory is N. However the N+1 is useless as it does not exist and is going to be replaced by the final output node in the expression tree trough OutputLocation struct.

Definition at line 284 of file evaluator.hpp.

◆ execute_expr() [1/4]

template<bool Conds, bool ParentConds, typename Expr , size_t LC, size_t LR, size_t LCT, size_t LRT, typename LHSExpr , typename RHSExpr , typename DeviceT >
auto visioncpp::internal::execute_expr ( LHSExpr  lhsExpr,
RHSExpr  rhsExpr,
const DeviceT &  dev 
) -> decltype(internal::IfExprExecNeeded< Conds, ParentConds, internal::expr_category::Binary, Expr, DeviceT>::template execute_expr<LC, LR, LCT, LRT>(lhsExpr, rhsExpr, dev))
inline

template deduction for IfExprExecNeeded when the expression category is Binary

Definition at line 265 of file executor_subexpr_if_needed.hpp.

References visioncpp::internal::expr_category::Binary.

◆ execute_expr() [2/4]

template<bool Conds, typename Expr , size_t LC, size_t LR, size_t LRT, size_t LCT, typename LHSExpr , typename RHSExpr , typename DeviceT >
Expr::Sub_expression_Type visioncpp::internal::execute_expr ( LHSExpr  lhsExpr,
RHSExpr  rhsExpr,
const DeviceT &  dev 
)
inline

template deduction for IfExprExecNeeded when the expression category is Binary

Definition at line 265 of file executor_subexpr_if_needed.hpp.

References visioncpp::internal::expr_category::Binary.

◆ execute_expr() [3/4]

template<bool Conds, bool ParentConds, typename Expr , size_t LC, size_t LR, size_t LCT, size_t LRT, typename NestedExpr , typename DeviceT >
auto visioncpp::internal::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))
inline

template deduction for IfExprExecNeeded when the expression category is unary

Definition at line 251 of file executor_subexpr_if_needed.hpp.

References visioncpp::internal::expr_category::Unary.

Referenced by visioncpp::internal::RDCN< DownSmplOP, RHS, Cols, Rows, LfType, LVL >::sub_expression_evaluation().

Here is the caller graph for this function:

◆ execute_expr() [4/4]

template<bool Conds, typename Expr , size_t LC, size_t LR, size_t LRT, size_t LCT, typename NestedExpr , typename DeviceT >
Expr::Sub_expression_Type visioncpp::internal::execute_expr ( NestedExpr  nestedExpr,
const DeviceT &  dev 
)
inline

template deduction for IfExprExecNeeded when the expression category is unary

Definition at line 251 of file executor_subexpr_if_needed.hpp.

References visioncpp::internal::expr_category::Unary.

Referenced by visioncpp::internal::RDCN< DownSmplOP, RHS, Cols, Rows, LfType, LVL >::sub_expression_evaluation().

Here is the caller graph for this function:

◆ fill_local_neighbour() [1/2]

template<size_t Halo_Top, size_t Halo_Left, size_t Halo_Butt, size_t Halo_Right, size_t Offset, size_t LC, size_t LR, size_t Sc, typename Expr , typename Loc , typename... Params>
static void visioncpp::internal::fill_local_neighbour ( Loc &  cOffset,
const internal::tools::tuple::Tuple< Params... > &  t 
)
static

template deduction for Fill struct.

Referenced by visioncpp::internal::EvalExpr< LeafNode< PlaceHolder< Memory_Type, N, Cols, Rows, Sc >, LVL >, Loc, Params... >::eval_neighbour().

Here is the caller graph for this function:

◆ fill_local_neighbour() [2/2]

template<size_t Halo_Top, size_t Halo_Left, size_t Halo_Butt, size_t Halo_Right, size_t Offset, size_t LC, size_t LR, typename Expr , typename Loc , typename... Params>
static void visioncpp::internal::fill_local_neighbour ( Loc &  cOffset,
const tools::tuple::Tuple< Params... > &  t 
)
static

Definition at line 99 of file square_pattern.hpp.

◆ fuse()

template<size_t LC, size_t LR, size_t LCT, size_t LRT, typename Expr , typename DeviceT >
void visioncpp::internal::fuse ( Expr  expr,
const DeviceT &  dev 
)
inline

function fuse

fuse function to generate a device kernel and execute. template parameters:

Template Parameters
LCsuggested column size for the local memory
LRsuggested row size for the local memory
LRTsuggested workgroup row size
LCTsuggested workgroup column size
Exprthe expression type function parameters:
Parameters
exprthe input expression
dev: the selected device for executing the expression

Definition at line 89 of file fuse.hpp.

References visioncpp::internal::FuseExpr< LCIn, LRIn, LCT, LRT, Expr, DeviceT >::fuse().

Here is the call graph for this function:

◆ get_compare()

template<bool Conds, size_t LDSize, size_t GDSize, typename T >
static bool visioncpp::internal::get_compare ( l,
int  i,
g 
)
inlinestatic

function get_compare template deduction for CompareIdBasedScope template parameters:

Template Parameters
Condsdetermines whether or not the local variable should be used
LDSize: determines the local dimension size
GDSizedetermines the global dimension size
Tdetermines the type of the dimension index function parameters:
Parameters
lis the local dimension size
gis the global dimension size
iis the offset needed to be added to the correct dimension before comparison return bool

Definition at line 83 of file memory_access.hpp.

References visioncpp::internal::CompareIdBasedScope< Conds, LDSize, GDSize, T >::get().

Here is the call graph for this function:

◆ get_global_range()

template<size_t Halo, size_t DimSize>
static size_t visioncpp::internal::get_global_range ( size_t  index)
inlinestatic

template deduction function for get_global_range template parameters:

Template Parameters
Halois the halo used around the image
DimSizeis the size of the dimension we want to check function parameters:
Parameters
indexis the passed index to be checked and corrected if needed
Returns
size_t

Definition at line 72 of file evaluator.hpp.

References visioncpp::internal::GetGlobalRange< Halo, DimSize >::get_global_range().

Here is the call graph for this function:

◆ get_range()

template<size_t Dim>
cl::sycl::range<Dim> visioncpp::internal::get_range ( size_t  r,
size_t  c 
)
inline

function get_range

template deduction for SyclRange template parameters:

Template Parameters
Dim: the memory dimension function parameters:
Parameters
rrow size
ccolumn size
Returns
cl::sycl::range<Dim>

column major

row major ///this will apply when sycl changes

Definition at line 120 of file memory.hpp.

Referenced by visioncpp::internal::OutputAccessor< false, LeafType, LC, LR, OutType >::getTuple().

Here is the caller graph for this function:

◆ get_subexpr_executor() [1/2]

template<size_t LC, size_t LR, size_t LCT, size_t LRT, typename Expr , typename DeviceT >
auto visioncpp::internal::get_subexpr_executor ( Expr &  expr,
const DeviceT &  dev 
) -> typename internal::SubExprRes<LC, LR, LCT, LRT, 1 + Expr::Level, Expr, DeviceT>::Type

Definition at line 93 of file executor_subexpr_if_needed.hpp.

References visioncpp::internal::SubExprRes< LC, LR, LCT, LRT, LVL, Expr, DeviceT >::get().

Here is the call graph for this function:

◆ get_subexpr_executor() [2/2]

template<size_t LC, size_t LR, size_t LCT, size_t LRT, size_t LVL, typename Expr , typename DeviceT >
auto visioncpp::internal::get_subexpr_executor ( Expr &  expr,
const DeviceT &  dev 
) -> typename internal::SubExprRes<LC, LR, LCT, LRT, LVL, Expr, DeviceT>::Type

template deduction for SubExprRes.

This is used when we manually need to pass the level in order to avoid double naming

Definition at line 84 of file executor_subexpr_if_needed.hpp.

References visioncpp::internal::SubExprRes< LC, LR, LCT, LRT, LVL, Expr, DeviceT >::get().

Here is the call graph for this function:

◆ id_val()

template<bool Conds, typename T >
static T visioncpp::internal::id_val ( l,
g 
)
inlinestatic

function id_val

template deduction for GetIdBasedScope. template parameters

Template Parameters
Condsdetermines whether or not the local variable should be used
Tdetermines the type of the dimension index function parameters:
Parameters
lis the local dimension size
gis the global dimension size
Returns
T

Definition at line 124 of file memory_access.hpp.

References visioncpp::internal::GetIdBasedScope< Conds, T >::get().

Here is the call graph for this function:

◆ memLocation()

template<size_t LC, size_t LR, typename ItemID >
Coordinate<LC, LR, ItemID> visioncpp::internal::memLocation ( ItemID  itemID)

deduction function for Coordinate

Definition at line 85 of file mem_coordinate.hpp.

◆ neighbour_operation()

template<typename OP , size_t Halo_T, size_t Halo_L, size_t Halo_B, size_t Halo_R, size_t Cols, size_t Rows, size_t LeafType, typename RHS >
auto visioncpp::internal::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 defined by a user.

Definition at line 126 of file stencil_no_filter.hpp.

◆ no_fuse()

template<size_t LC, size_t LR, size_t LCT, size_t LRT, typename Expr , typename DeviceT >
void visioncpp::internal::no_fuse ( Expr  expr,
const DeviceT &  dev 
)

◆ point_operation()

template<typename OP , size_t Cols, size_t Rows, size_t LeafType, typename LHS , typename RHS >
auto visioncpp::internal::point_operation ( LHS  lhs,
RHS  rhs 
) -> RBiOP< internal::PixelBinaryOp<OP, typename LHS::OutType, typename RHS::OutType>, LHS, RHS, Cols, Rows, LeafType, 1 + internal::tools::StaticIf<(LHS::Level > RHS::Level), LHS, RHS>::Type::Level>

template deduction for the RBiOP struct where user determines the Column, Row, and memory_type of the output.

Definition at line 174 of file resizable_binary.hpp.