VisionCpp  0.0.1
Namespaces | Classes | Enumerations | Functions
visioncpp Namespace Reference

VisionCpp namespace. More...

Namespaces

 custom
 User defined functionality for the kernel.
 
 internal
 Internal implementations.
 
 memory_type
 defines terminal nodes that can be used
 
 pixel
 Contains VisionCpp pixel type definitions.
 
 policy
 defines Executor policies available
 
 scope
 Scope is used to define the scope of the memory on the device.
 

Classes

struct  OP_BGRToRGB
 This functor reorders channels BGR to RGB. More...
 
struct  OP_F32C3ToU8C3
 This functor performs conversion from [0.0f, 1.0f] to [0, 255]. More...
 
struct  OP_HSVToRGB
 functor converts HSV(H:[0.0f, 360.f], S:[0.0f, 1.0f] V: [0.0f, 1.0f]) to color RGB(R:[0.0f, 1.0f], G:[0.0f, 1.0f], B:[0.0f, 1.0f]) More...
 
struct  OP_HSVToU8C3
 This functor allows displaying HSV. More...
 
struct  OP_RGBToBGR
 This functor reorders channels BGR to RGB. More...
 
struct  OP_RGBToGREY
 This functor performs RGB to GREY convertion following rule: GREY <- 0.299f * R + 0,587f * G + 0.114 * B. More...
 
struct  OP_RGBToHSV
 Functor converts RGB ( R: 0.0f..1.0f, G: 0.0f..1.0f, B: 0.0f..1.0f) to HSV ( H: 0.0f..360.f, S: 0.0f..1.0f V: 0.0f..1.0f ) color space. More...
 
struct  OP_U8C3ToF32C3
 This functor performs conversion from [0, 255] to [0.0f, 1.0f]. More...
 
struct  OP_Filter2D
 Applying the general convolution for 3 channel Image. More...
 
struct  OP_Filter2D_One
 Applying the general convolution for 1 channel Image. More...
 
struct  OP_GaussianBlur3x3
 applying the Gaussian blur 3x3 More...
 
struct  OP_SepFilterRow
 Separable filter for rows. More...
 
struct  OP_SepFilterCol
 Separable filter for cols. More...
 
struct  OP_SepGaussRow3
 Separable filter for rows. More...
 
struct  OP_SepGaussCol3
 Separable filter for cols. More...
 
struct  OP_DownsampleAverage
 Downsampling filter using average technique Other filters could be added for different numbers of channels. More...
 
struct  OP_DownsampleClosest
 Downsampling filter using closest technique. More...
 
struct  OP_AbsSub
 this functor uses the sycl::fabs to return the difference More...
 
struct  OP_Add
 This functor adds two pixels. More...
 
struct  OP_AniDiff_Grey
 This functor applies anisotropic diffusion for one channel. More...
 
struct  OP_AniDiff
 This functor applies anisotropic diffusion for 3 channels. More...
 
struct  OP_Div
 This functor divides two matrices element-wise. More...
 
struct  OP_FloatToF32C3
 It replicates one channel to 3 channels. More...
 
struct  OP_FloatToU8C1
 It converts float to uchar converting [0.0f, 1.0f] to [0, 255]. More...
 
struct  OP_U8C1ToFloat
 It converts uchar to float converting range [0, 255] to [0.0f, 1.0f]. More...
 
struct  OP_FloatToUChar
 It converts float to uchar. More...
 
struct  OP_Median
 This functor implements a median filter. More...
 
struct  OP_Merge2Chns
 This functor merges 2 matrices into one matrix of 2 channels. More...
 
struct  OP_Mul
 This functor implements an element-wise matrix multiplication. More...
 
struct  OP_PowerOf2
 This functor implements the power of 2 of one matrix. More...
 
struct  OP_Scale
 Scales the pixel value of an image by a factor. More...
 
struct  OP_Sub
 This functor subtracts 2 images. More...
 
struct  OP_Thresh
 Implements a binary threshold. More...
 
struct  OP_Broadcast
 This functor sets the pixel to the value passed in. More...
 
struct  OP_ScaleChannelZero
 This custom functor changes 0 channel by factor passed via float f. More...
 
struct  OP_ScaleChannelOne
 This custom functor changes 1 channel by factor passed via float f. More...
 
struct  OP_ScaleChannelTwo
 This custom functor changes 2 channel by factor passed via float f. More...
 
struct  OP_CVBGRToRGB
 This node is a utility node that does a conversion from cv::Mat ( unsigned char storage; channel order BGR ) to float with order of RGB normalise from opencv format to VisionCpp internal format [0, 255] to [0.0f, 1.0f]. More...
 
struct  OP_RGBToCVBGR
 This node is a utility node that does a conversion from float with order of RGB to cv::Mat ( unsigned char storage; channel order BGR ) denormalise from VisionCpp base format ( F32C3 ) to opencv 8UC3 (three channel unsigned char) More...
 
struct  OP_GREYToCVBGR
 float between [0.0f, 1.0f] to [0, 255] One channel GREY ( float ) is going to be converted to one channel cv::Mat More...
 

Enumerations

enum class  backend { sycl , size }
 
enum class  device { cpu , gpu , host , size }
 

Functions

template<typename Expr >
auto extract_accessors (cl::sycl::handler &cgh, Expr e) -> decltype(internal::ExtractAccessor< Expr::ND_Category, Expr >::getTuple(cgh, e))
 
template<bool ExecPolicy, size_t LC, size_t LR, size_t LCT, size_t LRT, typename Expr , typename DeviceT >
void execute (Expr &expr, const DeviceT &dev)
 execute function is called by user in order to execute an expression template parameters: More...
 
template<bool ExecPolicy, typename Expr , typename DeviceT >
void execute (Expr &expr, const DeviceT &dev)
 special case of the execute function with default value for local memory and workgroup size template parameters: More...
 
template<typename Fltr2DOP , typename DownSmplOP , size_t Depth, typename RHS , typename Fltr2D >
auto pyramid_down (RHS rhs, Fltr2D fltr2D) -> internal::PyramidAutomemGen< internal::LocalBinaryOp< Fltr2DOP, typename RHS::OutType, typename Fltr2D::OutType >, internal::LocalUnaryOp< DownSmplOP, typename RHS::OutType >, RHS, Fltr2D, RHS::Type::Cols, RHS::Type::Rows, RHS::Type::LeafType, 1+internal::tools::StaticIf<(RHS::Level > Fltr2D::Level), RHS, Fltr2D >::Type::Level, Depth >
 pyramid_auto_generate More...
 
template<typename COP_C , typename COP_R , typename ROP , size_t Depth, typename RHS , typename SepFilterCol , typename SepFilterRow , typename... Params>
auto pyramid_down (RHS rhs, SepFilterCol spFltrCol, SepFilterRow spFltrRow) -> internal::PyramidAutomemSep< internal::LocalBinaryOp< COP_C, typename RHS::OutType, typename SepFilterCol::OutType >, internal::LocalBinaryOp< COP_R, typename RHS::OutType, typename SepFilterRow::OutType >, internal::LocalUnaryOp< ROP, typename RHS::OutType >, RHS, SepFilterCol, SepFilterRow, RHS::Type::Cols, RHS::Type::Rows, RHS::Type::LeafType, 1+RHS::Level, Depth >
 pyramid_auto_generate More...
 
template<typename OP , size_t Cols, size_t Rows, size_t LeafType, typename RHS >
auto global_operation (RHS rhs) -> internal::RDCN< internal::GlobalUnaryOp< OP, typename RHS::OutType >, RHS, Cols, Rows, LeafType, 1+RHS::Level >
 template deduction function for RDCN when it is used for GlobalNeighbourOP. More...
 
template<typename OP , size_t Cols, size_t Rows, size_t LeafType, typename RHS >
auto neighbour_operation (RHS rhs) -> internal::RDCN< internal::LocalUnaryOp< OP, typename RHS::OutType >, RHS, Cols, Rows, LeafType, 1+RHS::Level >
 template deduction function for RDCN when it is used for NeighbourOP. More...
 
template<typename OP , size_t Halo_T, size_t Halo_L, size_t Halo_B, size_t Halo_R, typename RHS >
auto neighbour_operation (RHS rhs) -> internal::StnNoFilt< internal::LocalUnaryOp< OP, typename RHS::OutType >, Halo_T, Halo_L, Halo_B, Halo_R, RHS, RHS::Type::Cols, RHS::Type::Rows, RHS::Type::LeafType, 1+RHS::Level >
 template deduction for StnNoFilt class when the memory type of the output and column and row are automatically deduced from the input. More...
 
template<typename OP , size_t Cols, size_t Rows, size_t LeafType, typename LHS , typename RHS >
auto neighbour_operation (LHS lhs, RHS rhs) -> internal::StnFilt< internal::LocalBinaryOp< OP, typename LHS::OutType, typename RHS::OutType >, RHS::Type::Rows/2, RHS::Type::Cols/2, RHS::Type::Rows/2, RHS::Type::Cols/2, LHS, RHS, Cols, Rows, LeafType, 1+internal::tools::StaticIf<(LHS::Level > RHS::Level), LHS, RHS >::Type::Level >
 template deduction for StnFilt class when the memory types of the output and column and row are defined by a user. More...
 
template<typename OP , typename LHS , typename RHS >
auto neighbour_operation (LHS lhs, RHS rhs) -> internal::StnFilt< internal::LocalBinaryOp< OP, typename LHS::OutType, typename RHS::OutType >, RHS::Type::Rows/2, RHS::Type::Cols/2, RHS::Type::Rows/2, RHS::Type::Cols/2, LHS, RHS, LHS::Type::Cols, LHS::Type::Rows, LHS::Type::LeafType, 1+internal::tools::StaticIf<(LHS::Level > RHS::Level), LHS, RHS >::Type::Level >
 template deduction for StnFilt class when the memory type of the output and column and row are automatically deduced from the input. 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 LHS , typename RHS >
auto neighbour_operation (LHS lhs, RHS rhs) -> internal::StnFilt< internal::LocalBinaryOp< OP, typename LHS::OutType, typename RHS::OutType >, Halo_T, Halo_L, Halo_B, Halo_R, LHS, RHS, Cols, Rows, LeafType, 1+internal::tools::StaticIf<(LHS::Level > RHS::Level), LHS, RHS >::Type::Level >
 template deduction for StnFilt class when the memory type of the output; halos; and column and row are defined by a user. More...
 
template<typename OP , size_t Halo_T, size_t Halo_L, size_t Halo_B, size_t Halo_R, typename LHS , typename RHS >
auto neighbour_operation (LHS lhs, RHS rhs) -> internal::StnFilt< internal::LocalBinaryOp< OP, typename LHS::OutType, typename RHS::OutType >, Halo_T, Halo_L, Halo_B, Halo_R, LHS, RHS, LHS::Type::Cols, LHS::Type::Rows, LHS::Type::LeafType, 1+internal::tools::StaticIf<(LHS::Level > RHS::Level), LHS, RHS >::Type::Level >
 template deduction for StnFilt class when the memory type of the output and column and row are automatically deduced from the input. More...
 
template<typename LHS , typename RHS >
auto assign (LHS lhs, RHS rhs) -> internal::Assign< LHS, RHS, LHS::Type::Cols, LHS::Type::Rows, LHS::Type::LeafType, 1+internal::tools::StaticIf<(LHS::Level > RHS::Level), LHS, RHS >::Type::Level >
 assign function More...
 
template<typename ElemTp , size_t Cols, size_t Rows, size_t MemoryType, size_t Sc = scope::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 More...
 
template<typename ElemTp , size_t Cols, size_t Rows, size_t MemoryType, size_t Sc = scope::Global>
auto terminal () -> internal::LeafNode< internal::VisionMemory< false, internal::MemoryProperties< ElemTp >::ElementCategory, MemoryType, typename internal::MemoryProperties< ElemTp >::ChannelType, Cols, Rows, ElemTp, internal::MemoryProperties< ElemTp >::ChannelSize, Sc, 0 >, 0 >
 creation of the device only memory when the type is struct More...
 
template<typename ElemTp , size_t LeafType>
auto terminal (typename internal::MemoryProperties< ElemTp >::ChannelType dt) -> internal::LeafNode< internal::VisionMemory< true, internal::MemoryProperties< ElemTp >::ElementCategory, LeafType, typename internal::MemoryProperties< ElemTp >::ChannelType, 1, 1, ElemTp, internal::MemoryProperties< ElemTp >::ChannelSize, scope::Global, 0 >, 0 >
 template deduction of LeafNode where the memory_type is a constant variable and element_category is Struct More...
 
template<size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, typename LHS , typename RHS >
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 More...
 
template<typename OP , typename LHS , typename RHS >
auto point_operation (LHS lhs, RHS rhs) -> internal::RBiOP< internal::PixelBinaryOp< OP, typename LHS::OutType, typename RHS::OutType >, LHS, RHS, internal::InheritTypeBinary< LHS, RHS >::Type::Cols, internal::InheritTypeBinary< LHS, RHS >::Type::Rows, internal::InheritTypeBinary< LHS, RHS >::Type::LeafType, 1+internal::tools::StaticIf<(LHS::Level > RHS::Level), LHS, RHS >::Type::Level >
 template deduction for RBiOP struct where the Column, Row, and memory_type of the output has been automatically deduced from LHS and RHS operands More...
 
template<typename OP , size_t Cols, size_t Rows, size_t LeafType, typename RHS >
internal::RUnOP< internal::PixelUnaryOp< OP, typename RHS::OutType >, RHS, Cols, Rows, LeafType, 1+RHS::Level > point_operation (RHS rhs)
 template deduction for RUnOP struct where user determines the Column, Row, and memory_type of the output. More...
 
template<typename OP , typename RHS >
auto point_operation (RHS rhs) -> internal::RUnOP< internal::PixelUnaryOp< OP, typename RHS::OutType >, RHS, RHS::Type::Cols, RHS::Type::Rows, RHS::Type::LeafType, 1+RHS::Level >
 template deduction for RUnOP struct where the Column, Row, and memory_type of the output has been automatically deduced from LHS and RHS operands More...
 
template<typename OP , size_t Cols, size_t Rows, size_t LeafType, size_t Sc, typename ElementTp , typename Scalar >
internal::RUnOP< internal::PixelUnaryOp< OP, ElementTp >, internal::VisionMemory< true, Sc, LeafType, Scalar, 1, 1, ElementTp, 1, scope::Global, 0 >, Cols, Rows, LeafType, 1 > broadcast_value (internal::VisionMemory< true, Sc, LeafType, Scalar, 1, 1, ElementTp, 1, scope::Global, 0 > rhs)
 template deduction for RUnOP when it is used to broadcast one const value to all the channels of its parent node. More...
 
template<backend BK, device DV>
internal::Device_< BK, DV > make_device ()
 template deduction function for Device_ class More...
 
template<bool ExecPolicy, typename Expr , typename DeviceT >
void execute (Expr &, DeviceT &)
 
template<size_t plcType, size_t LWV, size_t LHV, size_t LCTV, size_t LRTV, typename Type >
auto schedule (Type dt) -> decltype(internal::LeafNode< internal::VirtualMemory< plcType, Type, LWV, LHV, LCTV, LRTV >, Type::Level >(dt))
 brief function schedule is a template deduction function for VirtualMemory when the local memory and workgroup size is defined by a user. More...
 
template<size_t plcType, typename Type >
auto schedule (Type dt) -> decltype(internal::LeafNode< internal::VirtualMemory< plcType, Type >, Type::Level >(dt))
 brief function schedule is a template deduction function for VirtualMemory when the local memory and workgroup size is default More...
 

Detailed Description

VisionCpp namespace.

Enumeration Type Documentation

◆ backend

enum visioncpp::backend
strong
Enumerator
sycl 

represents sycl backend.

size 

number of backends.

Definition at line 54 of file forward_declarations.hpp.

◆ device

enum visioncpp::device
strong
Enumerator
cpu 

represents the cpu device.

gpu 

represents the gpu device.

host 

represents the host device.

size 

number of devices

Definition at line 63 of file forward_declarations.hpp.

Function Documentation

◆ assign()

template<typename LHS , typename RHS >
auto visioncpp::assign ( LHS  lhs,
RHS  rhs 
) -> internal::Assign<LHS, RHS, LHS::Type::Cols, LHS::Type::Rows, LHS::Type::LeafType, 1 + internal::tools::StaticIf<(LHS::Level > RHS::Level), LHS, RHS>::Type::Level>

assign function

This function is used to deduce the Assign struct.

Definition at line 112 of file assign.hpp.

◆ broadcast_value()

template<typename OP , size_t Cols, size_t Rows, size_t LeafType, size_t Sc, typename ElementTp , typename Scalar >
internal::RUnOP<internal::PixelUnaryOp<OP, ElementTp>, internal::VisionMemory<true, Sc, LeafType, Scalar, 1, 1, ElementTp, 1, scope::Global, 0>, Cols, Rows, LeafType, 1> visioncpp::broadcast_value ( internal::VisionMemory< true, Sc, LeafType, Scalar, 1, 1, ElementTp, 1, scope::Global, 0 >  rhs)

template deduction for RUnOP when it is used to broadcast one const value to all the channels of its parent node.

Definition at line 141 of file resizable_unary.hpp.

References visioncpp::scope::Global.

◆ execute() [1/3]

template<bool ExecPolicy, typename Expr , typename DeviceT >
void visioncpp::execute ( Expr &  ,
DeviceT &   
)

◆ execute() [2/3]

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

execute function is called by user in order to execute an expression template parameters:

Template Parameters
ExecPolicydetermining which policy to be used for executing an expression. this can be Fuse or NoFuse
LCthe column size for local memory when needed
LRthe row size for column memory when needed
LCTthe size of the workgroup column.
LRTthe size of the workgroup row.
Exprthe expression type to be executed. function parameters:
Parameters
exprthe expression to be executed
devthe selected device for executing the expression
Returns
void

Definition at line 155 of file executor.hpp.

Referenced by execute().

Here is the caller graph for this function:

◆ execute() [3/3]

template<bool ExecPolicy, typename Expr , typename DeviceT >
void visioncpp::execute ( Expr &  expr,
const DeviceT &  dev 
)
inline

special case of the execute function with default value for local memory and workgroup size template parameters:

Template Parameters
ExecPolicydetermining which policy to be used for executing an expression. this can be Fuse or NoFuse
Exprthe expression type to be executed. function parameters:
Parameters
exprthe expression to be executed
dev: the selected device for executing the expression
Returns
void

Definition at line 171 of file executor.hpp.

References execute().

Referenced by visioncpp::internal::SubExprExecute< false, ExecPolicy, LC, LR, LCT, LRT, Expr, DeviceT >::execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ extract_accessors()

template<typename Expr >
auto visioncpp::extract_accessors ( cl::sycl::handler &  cgh,
Expr  e 
) -> decltype( internal::ExtractAccessor<Expr::ND_Category, Expr>::getTuple(cgh, e))

Definition at line 157 of file extract_accessors.hpp.

Referenced by visioncpp::internal::Device_< backend::sycl, dv >::execute().

Here is the caller graph for this function:

◆ global_operation()

template<typename OP , size_t Cols, size_t Rows, size_t LeafType, typename RHS >
auto visioncpp::global_operation ( RHS  rhs) -> internal::RDCN<internal::GlobalUnaryOp<OP, typename RHS::OutType>, RHS, Cols, Rows, LeafType, 1 + RHS::Level>

template deduction function for RDCN when it is used for GlobalNeighbourOP.

Definition at line 124 of file reduction.hpp.

◆ make_device()

template<backend BK, device DV>
internal::Device_<BK, DV> visioncpp::make_device ( )

template deduction function for Device_ class

Template Parameters
BKis used to determine the backend
DVis used to determine the selected device for that backend
Returns
Device_

Definition at line 90 of file forward_declarations.hpp.

◆ neighbour_operation() [1/6]

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 LHS , typename RHS >
auto visioncpp::neighbour_operation ( LHS  lhs,
RHS  rhs 
) -> internal::StnFilt< internal::LocalBinaryOp<OP, typename LHS::OutType, typename RHS::OutType>, Halo_T, Halo_L, Halo_B, Halo_R, LHS, RHS, Cols, Rows, LeafType, 1 + internal::tools::StaticIf<(LHS::Level > RHS::Level), LHS, RHS>::Type::Level>

template deduction for StnFilt class when the memory type of the output; halos; and column and row are defined by a user.

Definition at line 175 of file stencil_with_filter.hpp.

◆ neighbour_operation() [2/6]

template<typename OP , size_t Halo_T, size_t Halo_L, size_t Halo_B, size_t Halo_R, typename LHS , typename RHS >
auto visioncpp::neighbour_operation ( LHS  lhs,
RHS  rhs 
) -> internal::StnFilt< internal::LocalBinaryOp<OP, typename LHS::OutType, typename RHS::OutType>, Halo_T, Halo_L, Halo_B, Halo_R, LHS, RHS, LHS::Type::Cols, LHS::Type::Rows, LHS::Type::LeafType, 1 + internal::tools::StaticIf<(LHS::Level > RHS::Level), LHS, RHS>::Type::Level>

template deduction for StnFilt class when the memory type of the output and column and row are automatically deduced from the input.

However, the halos are defined by user.

Definition at line 192 of file stencil_with_filter.hpp.

◆ neighbour_operation() [3/6]

template<typename OP , size_t Cols, size_t Rows, size_t LeafType, typename LHS , typename RHS >
auto visioncpp::neighbour_operation ( LHS  lhs,
RHS  rhs 
) -> internal::StnFilt< internal::LocalBinaryOp<OP, typename LHS::OutType, typename RHS::OutType>, RHS::Type::Rows / 2, RHS::Type::Cols / 2, RHS::Type::Rows / 2, RHS::Type::Cols / 2, LHS, RHS, Cols, Rows, LeafType, 1 + internal::tools::StaticIf<(LHS::Level > RHS::Level), LHS, RHS>::Type::Level>

template deduction for StnFilt class when the memory types of the output and column and row are defined by a user.

Definition at line 137 of file stencil_with_filter.hpp.

◆ neighbour_operation() [4/6]

template<typename OP , typename LHS , typename RHS >
auto visioncpp::neighbour_operation ( LHS  lhs,
RHS  rhs 
) -> internal::StnFilt< internal::LocalBinaryOp<OP, typename LHS::OutType, typename RHS::OutType>, RHS::Type::Rows / 2, RHS::Type::Cols / 2, RHS::Type::Rows / 2, RHS::Type::Cols / 2, LHS, RHS, LHS::Type::Cols, LHS::Type::Rows, LHS::Type::LeafType, 1 + internal::tools::StaticIf<(LHS::Level > RHS::Level), LHS, RHS>::Type::Level>

template deduction for StnFilt class when the memory type of the output and column and row are automatically deduced from the input.

Definition at line 154 of file stencil_with_filter.hpp.

◆ neighbour_operation() [5/6]

template<typename OP , size_t Cols, size_t Rows, size_t LeafType, typename RHS >
auto visioncpp::neighbour_operation ( RHS  rhs) -> internal::RDCN<internal::LocalUnaryOp<OP, typename RHS::OutType>, RHS, Cols, Rows, LeafType, 1 + RHS::Level>

template deduction function for RDCN when it is used for NeighbourOP.

Definition at line 133 of file reduction.hpp.

◆ neighbour_operation() [6/6]

template<typename OP , size_t Halo_T, size_t Halo_L, size_t Halo_B, size_t Halo_R, typename RHS >
auto visioncpp::neighbour_operation ( RHS  rhs) -> internal::StnNoFilt<internal::LocalUnaryOp<OP, typename RHS::OutType>, Halo_T, Halo_L, Halo_B, Halo_R, RHS, RHS::Type::Cols, RHS::Type::Rows, RHS::Type::LeafType, 1 + RHS::Level>

template deduction for StnNoFilt class when the memory type of the output and column and row are automatically deduced from the input.

Definition at line 140 of file stencil_no_filter.hpp.

◆ partial_assign()

template<size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, typename LHS , typename RHS >
auto visioncpp::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

This function is used to deduce the ParallelCopy struct.

Definition at line 150 of file parallel_copy.hpp.

◆ point_operation() [1/3]

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

template deduction for RBiOP struct where the Column, Row, and memory_type of the output has been automatically deduced from LHS and RHS operands

Definition at line 191 of file resizable_binary.hpp.

◆ point_operation() [2/3]

template<typename OP , size_t Cols, size_t Rows, size_t LeafType, typename RHS >
internal::RUnOP<internal::PixelUnaryOp<OP, typename RHS::OutType>, RHS, Cols, Rows, LeafType, 1 + RHS::Level> visioncpp::point_operation ( RHS  rhs)

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

Definition at line 115 of file resizable_unary.hpp.

◆ point_operation() [3/3]

template<typename OP , typename RHS >
auto visioncpp::point_operation ( RHS  rhs) -> internal::RUnOP<internal::PixelUnaryOp<OP, typename RHS::OutType>, RHS, RHS::Type::Cols, RHS::Type::Rows, RHS::Type::LeafType, 1 + RHS::Level>

template deduction for RUnOP struct where the Column, Row, and memory_type of the output has been automatically deduced from LHS and RHS operands

Definition at line 124 of file resizable_unary.hpp.

◆ pyramid_down() [1/2]

template<typename Fltr2DOP , typename DownSmplOP , size_t Depth, typename RHS , typename Fltr2D >
auto visioncpp::pyramid_down ( RHS  rhs,
Fltr2D  fltr2D 
) -> internal::PyramidAutomemGen< internal::LocalBinaryOp<Fltr2DOP, typename RHS::OutType, typename Fltr2D::OutType>, internal::LocalUnaryOp<DownSmplOP, typename RHS::OutType>, RHS, Fltr2D, RHS::Type::Cols, RHS::Type::Rows, RHS::Type::LeafType, 1 + internal::tools::StaticIf<(RHS::Level > Fltr2D::Level), RHS, Fltr2D>::Type::Level, Depth>

pyramid_auto_generate

template deduction for PyramidAutomemGen

Definition at line 228 of file pyramid_with_auto_mem_gen.hpp.

◆ pyramid_down() [2/2]

template<typename COP_C , typename COP_R , typename ROP , size_t Depth, typename RHS , typename SepFilterCol , typename SepFilterRow , typename... Params>
auto visioncpp::pyramid_down ( RHS  rhs,
SepFilterCol  spFltrCol,
SepFilterRow  spFltrRow 
) -> internal::PyramidAutomemSep< internal::LocalBinaryOp<COP_C, typename RHS::OutType, typename SepFilterCol::OutType>, internal::LocalBinaryOp<COP_R, typename RHS::OutType, typename SepFilterRow::OutType>, internal::LocalUnaryOp<ROP, typename RHS::OutType>, RHS, SepFilterCol, SepFilterRow, RHS::Type::Cols, RHS::Type::Rows, RHS::Type::LeafType, 1 + RHS::Level, Depth>

pyramid_auto_generate

template deduction for PyramidAutomemGenSep

Definition at line 253 of file pyramid_with_auto_mem_sep.hpp.

◆ schedule() [1/2]

template<size_t plcType, typename Type >
auto visioncpp::schedule ( Type  dt) -> decltype(internal::LeafNode<internal::VirtualMemory<plcType, Type>, Type::Level>(dt))

brief function schedule is a template deduction function for VirtualMemory when the local memory and workgroup size is default

Definition at line 122 of file mem_virtual.hpp.

◆ schedule() [2/2]

template<size_t plcType, size_t LWV, size_t LHV, size_t LCTV, size_t LRTV, typename Type >
auto visioncpp::schedule ( Type  dt) -> decltype(internal::LeafNode< internal::VirtualMemory<plcType, Type, LWV, LHV, LCTV, LRTV>, Type::Level>( dt))

brief function schedule is a template deduction function for VirtualMemory when the local memory and workgroup size is defined by a user.

Definition at line 111 of file mem_virtual.hpp.

◆ terminal() [1/3]

template<typename ElemTp , size_t Cols, size_t Rows, size_t MemoryType, size_t Sc = scope::Global>
auto visioncpp::terminal ( ) -> internal::LeafNode< internal::VisionMemory< false, internal::MemoryProperties<ElemTp>::ElementCategory, MemoryType, typename internal::MemoryProperties<ElemTp>::ChannelType, Cols, Rows, ElemTp, internal::MemoryProperties<ElemTp>::ChannelSize, Sc, 0>, 0>

creation of the device only memory when the type is struct

Definition at line 150 of file leaf_node.hpp.

◆ terminal() [2/3]

template<typename ElemTp , size_t Cols, size_t Rows, size_t MemoryType, size_t Sc = scope::Global>
auto visioncpp::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

Definition at line 126 of file leaf_node.hpp.

◆ terminal() [3/3]

template<typename ElemTp , size_t LeafType>
auto visioncpp::terminal ( typename internal::MemoryProperties< ElemTp >::ChannelType  dt) -> internal::LeafNode< internal::VisionMemory< true, internal::MemoryProperties<ElemTp>::ElementCategory, LeafType, typename internal::MemoryProperties<ElemTp>::ChannelType, 1, 1, ElemTp, internal::MemoryProperties<ElemTp>::ChannelSize, scope::Global, 0>, 0>

template deduction of LeafNode where the memory_type is a constant variable and element_category is Struct

Definition at line 171 of file leaf_node.hpp.

References visioncpp::scope::Global.