VisionCpp  0.0.1
Static Public Member Functions | List of all members
visioncpp::internal::PyramidExecuteAutoMemSep< SatisfyingConds, SepFltrColOP, SepFltrRowOP, DownSmplOP, Cols, Rows, LeafType, OffsetCol, OffsetRow, LVL, LC, LR, LCT, LRT, Depth, CurrentDepth, LHS, RHS, SepFilterCol, SepFilterRow, PyramidMem, DeviceT > Struct Template Reference

here we execute the pyramid; automatically construct the output tuple based on the depth of the pyramid; and construct the kernels. More...

#include <pyramid_with_auto_mem_sep.hpp>

Collaboration diagram for visioncpp::internal::PyramidExecuteAutoMemSep< SatisfyingConds, SepFltrColOP, SepFltrRowOP, DownSmplOP, Cols, Rows, LeafType, OffsetCol, OffsetRow, LVL, LC, LR, LCT, LRT, Depth, CurrentDepth, LHS, RHS, SepFilterCol, SepFilterRow, PyramidMem, DeviceT >:

Static Public Member Functions

static void sub_execute (RHS &rhs, SepFilterCol &spFltrCol, SepFilterRow &spFltrRow, PyramidMem &mem, const DeviceT &dev)
 function sub_execute More...
 

Detailed Description

template<bool SatisfyingConds, typename SepFltrColOP, typename SepFltrRowOP, typename DownSmplOP, size_t Cols, size_t Rows, size_t LeafType, size_t OffsetCol, size_t OffsetRow, size_t LVL, size_t LC, size_t LR, size_t LCT, size_t LRT, size_t Depth, size_t CurrentDepth, typename LHS, typename RHS, typename SepFilterCol, typename SepFilterRow, typename PyramidMem, typename DeviceT>
struct visioncpp::internal::PyramidExecuteAutoMemSep< SatisfyingConds, SepFltrColOP, SepFltrRowOP, DownSmplOP, Cols, Rows, LeafType, OffsetCol, OffsetRow, LVL, LC, LR, LCT, LRT, Depth, CurrentDepth, LHS, RHS, SepFilterCol, SepFilterRow, PyramidMem, DeviceT >

here we execute the pyramid; automatically construct the output tuple based on the depth of the pyramid; and construct the kernels.

template parameters:

Template Parameters
SatisfyingCondsa boolean variable is used to determine the end of the recursive creation of the pyramid kernel at compile time.
Fltr2DOPgeneral Filter2D functor
DownSmplOPdownsampling function for pyramid
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}
LVLthe current level of the node based on the previous creation of the kernel. This level express the a new level for RHS. This level is an artificial level. In each step we consider an expression needed to be executed by a kernel as a subexpression of a big expression tree. The LVL here represent the level of the root of each subexpression inside that big artificial expression.
LCis the column size of local memory required by Filter2D and DownSmplOP
LRis the row size of local memory required by Filter2D and DownSmplOP
LCTis the column size of workgroup
LRTis the row size of workgroup
Depthrepresents the depth of down sampling
CurrentDepthrepresents the number of kernel created so far by recursively calling of PyramidExecuteGen struct.
LHSis the final output of the pyramid combining all the node together
RHSis the intermediate input passed for the current kernel to be
SepFilterRowis the separable filter for row
SepFilterColis the separable filter for col
PyramidMemis a tuple of pyramid output memory

Definition at line 72 of file pyramid_with_auto_mem_sep.hpp.

Member Function Documentation

◆ sub_execute()

template<bool SatisfyingConds, typename SepFltrColOP , typename SepFltrRowOP , typename DownSmplOP , size_t Cols, size_t Rows, size_t LeafType, size_t OffsetCol, size_t OffsetRow, size_t LVL, size_t LC, size_t LR, size_t LCT, size_t LRT, size_t Depth, size_t CurrentDepth, typename LHS , typename RHS , typename SepFilterCol , typename SepFilterRow , typename PyramidMem , typename DeviceT >
static void visioncpp::internal::PyramidExecuteAutoMemSep< SatisfyingConds, SepFltrColOP, SepFltrRowOP, DownSmplOP, Cols, Rows, LeafType, OffsetCol, OffsetRow, LVL, LC, LR, LCT, LRT, Depth, CurrentDepth, LHS, RHS, SepFilterCol, SepFilterRow, PyramidMem, DeviceT >::sub_execute ( RHS &  rhs,
SepFilterCol &  spFltrCol,
SepFilterRow &  spFltrRow,
PyramidMem &  mem,
const DeviceT &  dev 
)
inlinestatic

function sub_execute

is the function used to construct a subexpression tree corresponding to the CurrentDepth of the pyramid and launch the kernel

Parameters
rhsis the intermediate input passed for the current kernel to be executed as a leafNode
spFltrRowis the separable filter node for Row
spFltrColis the separable filter node for Col
memis the tuple of pyramid output memory
dev: the selected device for executing the expression
Returns
void

Definition at line 83 of file pyramid_with_auto_mem_sep.hpp.


The documentation for this struct was generated from the following file: