IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
AvxTypes.h
Go to the documentation of this file.
1 // AvxTypes.h:
3 // ------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_AVXTYPES_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_AVXTYPES_H__
17 
18 #include <IPSDKUtil/BaseTypes.h>
19 #include <xmmintrin.h>
20 #include <emmintrin.h>
21 #include <immintrin.h>
22 
23 namespace ipsdk {
24 
27 
32 template <typename T, typename Enable=void>
33 struct AvxType
34 {
35 };
36 
39 #define IPSDK_DATATYPE_TO_AVX_TYPE(DataType, AvxTypeT) \
40  template<> struct AvxType<DataType> { \
41  typedef AvxTypeT Type; \
42  };
43 
46 
47 #if (defined IPSDK_WITH_AVX || defined IPSDK_WITH_AVX2)
48 template<typename T>
49 struct AvxType<T, typename boost::enable_if_c<boost::is_integral<T>::value>::type>
50 {
51  typedef __m256i Type;
52 };
53 #endif
54 
55 #if (defined IPSDK_WITH_AVX || defined IPSDK_WITH_AVX2)
58 #endif
59 
61 
64 
65 } // end of namespace ipsdk
66 
67 #endif // __IPSDKUTIL_INSTRUCTIONSET_AVXTYPES_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
Definition: DataItemNodeHdrMacrosDetails.h:48
Base types for multiplatform compatibility.
#define IPSDK_DATATYPE_TO_AVX_TYPE(DataType, AvxTypeT)
Definition: AvxTypes.h:39
structure used to retrieve AVX type associated to a base type
Definition: AvxTypes.h:33
float ipReal32
Base types definition.
Definition: BaseTypes.h:56