IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
IsLessEqualRegDecl.h
Go to the documentation of this file.
1 // IsLessEqualRegDecl.h:
3 // -------------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_COMPARISON_DETAIL_AVX2_ISLESSEQUALREGDECL_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_COMPARISON_DETAIL_AVX2_ISLESSEQUALREGDECL_H__
17 
22 
23 #include <boost/type_traits/is_integral.hpp>
24 #include <boost/utility/enable_if.hpp>
25 
26 namespace ipsdk {
27 namespace simd {
28 namespace detail {
29 
32 
33 template <typename T>
36  T,
37  typename boost::enable_if_c<
38  boost::is_integral<T>::value
39  >::type
40 >
41 {
42  static IPSDK_FORCEINLINE
44  act(const typename AvxType<T>::Type& in1,
45  const typename AvxType<T>::Type& in2);
46 
47  static IPSDK_FORCEINLINE
49  act(const typename AvxType<T>::Type& in1,
50  const T& in2);
51 
52  static IPSDK_FORCEINLINE
53  void
54  act(const typename AvxType<T>::Type& in1,
55  const typename AvxType<T>::Type& in2,
57 
58  static IPSDK_FORCEINLINE
59  void
60  act(const typename AvxType<T>::Type& in1,
61  const T& in2,
63 };
64 
65 template <>
67 {
68  static IPSDK_FORCEINLINE
70  act(const AvxType<ipReal32>::Type& in1,
71  const AvxType<ipReal32>::Type& in2);
72 
73  static IPSDK_FORCEINLINE
75  act(const AvxType<ipReal32>::Type& in1,
76  const ipReal32& in2);
77 
78  static IPSDK_FORCEINLINE
79  void
80  act(const AvxType<ipReal32>::Type& in1,
81  const AvxType<ipReal32>::Type& in2,
83 
84  static IPSDK_FORCEINLINE
85  void
86  act(const AvxType<ipReal32>::Type& in1,
87  const ipReal32& in2,
89 };
90 
91 template <>
93 {
94  static IPSDK_FORCEINLINE
96  act(const AvxType<ipReal64>::Type& in1,
97  const AvxType<ipReal64>::Type& in2);
98 
99  static IPSDK_FORCEINLINE
101  act(const AvxType<ipReal64>::Type& in1,
102  const ipReal64& in2);
103 
104  static IPSDK_FORCEINLINE
105  void
106  act(const AvxType<ipReal64>::Type& in1,
107  const AvxType<ipReal64>::Type& in2,
109 
110  static IPSDK_FORCEINLINE
111  void
112  act(const AvxType<ipReal64>::Type& in1,
113  const ipReal64& in2,
115 };
116 
119 
120 } // end of namespace detail
121 } // end of namespace simd
122 } // end of namespace ipsdk
123 
124 #endif // __IPSDKUTIL_INSTRUCTIONSET_COMPARISON_DETAIL_AVX2_ISLESSEQUALREGDECL_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
Predefined types for Avx instruction set management.
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Definition: IsLessEqualRegDecl.h:30
Advanced Vector Extensions 2.
Definition: InstructionSetTypes.h:48
Definition of import/export macro for library.
Definition: RegMaskType.h:29
structure used to retrieve AVX type associated to a base type
Definition: AvxTypes.h:33
float ipReal32
Base types definition.
Definition: BaseTypes.h:56