IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ImageProcessingAlgorithmSrcMacros.h
Go to the documentation of this file.
1 // ImageProcessingAlgorithmSrcMacros.h:
3 // ------------------------------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_IMAGEPROCESSINGALGORITHMSRCMACROS_H__
17 #define __IPSDKIMAGEPROCESSING_IMAGEPROCESSINGALGORITHMSRCMACROS_H__
18 
20 #include <IPSDKImageProcessing/Algorithm/Function/AlgorithmFunctionEfficiency.h>
22 
25 
28 #define CAT_IS_MACRO(s, data, elem) eInstructionSet::elem
29 
32 #define IPSDK_GET_FUNCTION_EFFICIENCY(isSeq) \
33  (ipsdk::imaproc::AlgorithmFunctionEfficiency< \
34  BOOST_PP_SEQ_ENUM(BOOST_PP_SEQ_TRANSFORM(CAT_IS_MACRO, _, isSeq))>::getEfficiency())
35 
39 #define IPSDK_REGISTER_GENERIC_STRIP_ALGORITHM_FUNCTION(bufferTypeSeq, isSeq, \
40  functionName) \
41  IPSDK_REGISTER_GENERIC_ALGORITHM_FUNCTION( \
42  IPSDK_TRANSFORM_SEQ(bufferTypeSeq, STRIP), \
43  isSeq, IPSDK_GET_FUNCTION_EFFICIENCY(isSeq), \
44  functionName)
45 
48 #define IPSDK_REGISTER_GENERIC_STRIP_ALGORITHM_FUNCTION_COLL_MACRO(r, dataInfo) \
49  IPSDK_REGISTER_GENERIC_STRIP_ALGORITHM_FUNCTION(BOOST_PP_SEQ_REST_N(2, dataInfo), \
50  BOOST_PP_SEQ_ELEM(0, dataInfo), \
51  BOOST_PP_SEQ_ELEM(1, dataInfo))
52 
56 #define IPSDK_REGISTER_GENERIC_STRIP_ALGORITHM_FUNCTION_COLL(bufferTypeSeqColl, isSeq, \
57  functionName) \
58  BOOST_PP_SEQ_FOR_EACH_PRODUCT(IPSDK_REGISTER_GENERIC_STRIP_ALGORITHM_FUNCTION_COLL_MACRO, \
59  ((isSeq))((functionName)) bufferTypeSeqColl)
60 
63 
67 #define IPSDK_REGISTER_SPECIFIC_STRIP_ALGORITHM_FUNCTION(bufferTypeSeq, isSeq, \
68  functionName) \
69  IPSDK_REGISTER_SPECIFIC_ALGORITHM_FUNCTION( \
70  IPSDK_TRANSFORM_SEQ(bufferTypeSeq, STRIP), \
71  isSeq, IPSDK_GET_FUNCTION_EFFICIENCY(isSeq), functionName)
72 
75 #define IPSDK_REGISTER_SPECIFIC_STRIP_ALGORITHM_FUNCTION_COLL_MACRO(r, dataInfo) \
76  IPSDK_REGISTER_SPECIFIC_STRIP_ALGORITHM_FUNCTION(BOOST_PP_SEQ_REST_N(2, dataInfo), \
77  BOOST_PP_SEQ_ELEM(0, dataInfo), \
78  BOOST_PP_SEQ_ELEM(1, dataInfo))
79 
83 #define IPSDK_REGISTER_SPECIFIC_STRIP_ALGORITHM_FUNCTION_COLL(bufferTypeSeqColl, isSeq, \
84  functionName) \
85  BOOST_PP_SEQ_FOR_EACH_PRODUCT(IPSDK_REGISTER_SPECIFIC_STRIP_ALGORITHM_FUNCTION_COLL_MACRO, \
86  ((isSeq))((functionName)) bufferTypeSeqColl)
87 
88 
91 
92 
93 #endif // __IPSDKIMAGEPROCESSING_IMAGEPROCESSINGALGORITHMSRCMACROS_H__
Source part of macros set for image processing algorithm class implementation.
Source part of macros set for processing algorithm class implementation.