VisionCpp  0.0.1
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp > Struct Template Reference

PyramidDownGen is used to construct a pyramid node in the expression tree with general Filter2D and general DownSmplOP functors. More...

#include <pyramid_with_auto_mem_gen.hpp>

Collaboration diagram for visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >:

Public Types

using OutType = typename DownSmplOP::OutType
 
using Type = typename OutputMemory< OutType, LfType, Cols+Cols/2, Rows, LVL >::Type
 
using LHSExpr = LeafNode< Type, LVL >
 
using PyramidMem = typename CreatePyramidTupleType< false, Cols/2, Rows/2, LeafType, Depth, 0, LHSExpr >::Type
 
using PyramidType = PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >
 pyramid type More...
 

Public Member Functions

 PyramidAutomemGen (RHS rhsArg, Fltr2D fltr2DArg)
 
void reset (bool reset)
 
template<size_t N>
PyramidLeafNode< PyramidType, N > get ()
 method get More...
 
template<bool ForcedToExec, size_t LC, size_t LR, size_t LCT, size_t LRT, typename DeviceT >
PyramidLeafNode< PyramidType, 0 > sub_expression_evaluation (const DeviceT &dev)
 sub_expression_evaluation More...
 

Public Attributes

RHS rhs
 
Fltr2D fltr2D
 
bool subexpr_execution_reseter
 
bool first_time
 
size_t node_reseter
 
PyramidMem mem
 

Static Public Attributes

static constexpr bool has_out = false
 
static constexpr size_t Level = LVL
 
static constexpr size_t LeafType = Type::LeafType
 
static constexpr bool SubExpressionEvaluationNeeded = true
 
static constexpr size_t Operation_type = ops_category::GlobalNeighbourOP
 
static constexpr size_t RThread = Rows
 
static constexpr size_t CThread = Cols
 
static constexpr size_t ND_Category = expr_category::Binary
 
static constexpr size_t Depth = Dp
 

Detailed Description

template<typename Fltr2DOP, typename DownSmplOP, typename RHS, typename Fltr2D, size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
struct visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >

PyramidDownGen is used to construct a pyramid node in the expression tree with general Filter2D and general DownSmplOP functors.

It automatically generates the tuple of output based on the depth. template parameters:

Template Parameters
Fltr2DOPgeneral Filter2D function
DownSmplOPdownsampling function for pyramid
Colsdetermines the column size of the input pyramid
RHSis the input passed for pyramid
Fltr2Dis the filter2d node
Rowsdetermines the row size of the input pyramid
LfTypedetermines the type of the leafNode {Buffer2D, Buffer1D, Host, Image}
LVLthe level of the node in the expression tree
Dprepresents the depth of down sampling

Definition at line 140 of file pyramid_with_auto_mem_gen.hpp.

Member Typedef Documentation

◆ LHSExpr

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
using visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::LHSExpr = LeafNode<Type, LVL>

Definition at line 145 of file pyramid_with_auto_mem_gen.hpp.

◆ OutType

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
using visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::OutType = typename DownSmplOP::OutType

Definition at line 142 of file pyramid_with_auto_mem_gen.hpp.

◆ PyramidMem

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
using visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::PyramidMem = typename CreatePyramidTupleType<false, Cols / 2, Rows / 2, LeafType, Depth, 0, LHSExpr>::Type

Definition at line 154 of file pyramid_with_auto_mem_gen.hpp.

◆ PyramidType

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
using visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::PyramidType = PyramidAutomemGen<Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp>

pyramid type

Definition at line 179 of file pyramid_with_auto_mem_gen.hpp.

◆ Type

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
using visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::Type = typename OutputMemory<OutType, LfType, Cols + Cols / 2, Rows, LVL>::Type

Definition at line 143 of file pyramid_with_auto_mem_gen.hpp.

Constructor & Destructor Documentation

◆ PyramidAutomemGen()

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::PyramidAutomemGen ( RHS  rhsArg,
Fltr2D  fltr2DArg 
)
inline

Definition at line 165 of file pyramid_with_auto_mem_gen.hpp.

Member Function Documentation

◆ get()

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
template<size_t N>
PyramidLeafNode<PyramidType, N> visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::get ( )
inline

method get

Definition at line 183 of file pyramid_with_auto_mem_gen.hpp.

◆ reset()

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
void visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::reset ( bool  reset)
inline

◆ sub_expression_evaluation()

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
template<bool ForcedToExec, size_t LC, size_t LR, size_t LCT, size_t LRT, typename DeviceT >
PyramidLeafNode<PyramidType, 0> visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::sub_expression_evaluation ( const DeviceT &  dev)
inline

sub_expression_evaluation

This function is used to break the expression tree whenever necessary. The decision for breaking the tree will be determined based on the static parameter called SubExpressionEvaluationNeeded. When this is set to true, the sub_expression_evaluation is called recursively from the root of the tree. Each node based on their parent decision will decide to launch a kernel for itself. Also, they decide for each of their children whether or not to launch a kernel separately. template parameters:

Template Parameters
ForcedToExec: a boolean value representing the decision made by the parent of this node for launching a kernel.
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
DeviceTtype representing the device function parameters:
Parameters
dev: the selected device for executing the expression
Returns
LeafNode

Definition at line 210 of file pyramid_with_auto_mem_gen.hpp.

References visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::Depth, visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::fltr2D, visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::LeafType, visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::mem, and visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::rhs.

Member Data Documentation

◆ CThread

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
constexpr size_t visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::CThread = Cols
staticconstexpr

Definition at line 151 of file pyramid_with_auto_mem_gen.hpp.

◆ Depth

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
constexpr size_t visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::Depth = Dp
staticconstexpr

◆ first_time

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
bool visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::first_time

Definition at line 161 of file pyramid_with_auto_mem_gen.hpp.

◆ fltr2D

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
Fltr2D visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::fltr2D

◆ has_out

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
constexpr bool visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::has_out = false
staticconstexpr

Definition at line 141 of file pyramid_with_auto_mem_gen.hpp.

◆ LeafType

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
constexpr size_t visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::LeafType = Type::LeafType
staticconstexpr

◆ Level

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
constexpr size_t visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::Level = LVL
staticconstexpr

Definition at line 146 of file pyramid_with_auto_mem_gen.hpp.

◆ mem

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
PyramidMem visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::mem

◆ ND_Category

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
constexpr size_t visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::ND_Category = expr_category::Binary
staticconstexpr

Definition at line 152 of file pyramid_with_auto_mem_gen.hpp.

◆ node_reseter

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
size_t visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::node_reseter

Definition at line 162 of file pyramid_with_auto_mem_gen.hpp.

◆ Operation_type

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
constexpr size_t visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::Operation_type = ops_category::GlobalNeighbourOP
staticconstexpr

Definition at line 149 of file pyramid_with_auto_mem_gen.hpp.

◆ rhs

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
RHS visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::rhs

◆ RThread

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
constexpr size_t visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::RThread = Rows
staticconstexpr

Definition at line 150 of file pyramid_with_auto_mem_gen.hpp.

◆ subexpr_execution_reseter

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
bool visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::subexpr_execution_reseter

◆ SubExpressionEvaluationNeeded

template<typename Fltr2DOP , typename DownSmplOP , typename RHS , typename Fltr2D , size_t Cols, size_t Rows, size_t LfType, size_t LVL, size_t Dp>
constexpr bool visioncpp::internal::PyramidAutomemGen< Fltr2DOP, DownSmplOP, RHS, Fltr2D, Cols, Rows, LfType, LVL, Dp >::SubExpressionEvaluationNeeded = true
staticconstexpr

Definition at line 148 of file pyramid_with_auto_mem_gen.hpp.


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