IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
MinRegDecl.h
Go to the documentation of this file.
1 // MinRegDecl.h:
3 // -------------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX2_MINREGDECL_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX2_MINREGDECL_H__
17 
22 
23 namespace ipsdk {
24 namespace simd {
25 namespace detail {
26 
29 
32 template <>
34 {
35  static IPSDK_FORCEINLINE
37  act(const AvxType<ipUInt8>::Type& in1,
38  const AvxType<ipUInt8>::Type& in2);
39 
40  static IPSDK_FORCEINLINE
41  void
42  act(const AvxType<ipUInt8>::Type& in1,
43  const AvxType<ipUInt8>::Type& in2,
45 };
46 
49 template <>
51 {
52  static IPSDK_FORCEINLINE
54  act(const AvxType<ipInt8>::Type& in1,
55  const AvxType<ipInt8>::Type& in2);
56 
57  static IPSDK_FORCEINLINE
58  void
59  act(const AvxType<ipInt8>::Type& in1,
60  const AvxType<ipInt8>::Type& in2,
62 };
63 
66 template <>
68 {
69  static IPSDK_FORCEINLINE
71  act(const AvxType<ipUInt16>::Type& in1,
72  const AvxType<ipUInt16>::Type& in2);
73 
74  static IPSDK_FORCEINLINE
75  void
76  act(const AvxType<ipUInt16>::Type& in1,
77  const AvxType<ipUInt16>::Type& in2,
79 };
80 
83 template <>
85 {
86  static IPSDK_FORCEINLINE
88  act(const AvxType<ipInt16>::Type& in1,
89  const AvxType<ipInt16>::Type& in2);
90 
91  static IPSDK_FORCEINLINE
92  void
93  act(const AvxType<ipInt16>::Type& in1,
94  const AvxType<ipInt16>::Type& in2,
96 };
97 
100 template <>
102 {
103  static IPSDK_FORCEINLINE
105  act(const AvxType<ipUInt32>::Type& in1,
106  const AvxType<ipUInt32>::Type& in2);
107 
108  static IPSDK_FORCEINLINE
109  void
110  act(const AvxType<ipUInt32>::Type& in1,
111  const AvxType<ipUInt32>::Type& in2,
113 };
114 
117 template <>
119 {
120  static IPSDK_FORCEINLINE
122  act(const AvxType<ipInt32>::Type& in1,
123  const AvxType<ipInt32>::Type& in2);
124 
125  static IPSDK_FORCEINLINE
126  void
127  act(const AvxType<ipInt32>::Type& in1,
128  const AvxType<ipInt32>::Type& in2,
130 };
131 
132 
135 template <>
137 {
138  static IPSDK_FORCEINLINE
140  act(const AvxType<ipReal32>::Type& in1,
141  const AvxType<ipReal32>::Type& in2);
142 
143  static IPSDK_FORCEINLINE
144  void
145  act(const AvxType<ipReal32>::Type& in1,
146  const AvxType<ipReal32>::Type& in2,
148 };
149 
152 template <>
154 {
155  static IPSDK_FORCEINLINE
157  act(const AvxType<ipReal64>::Type& in1,
158  const AvxType<ipReal64>::Type& in2);
159 
160  static IPSDK_FORCEINLINE
161  void
162  act(const AvxType<ipReal64>::Type& in1,
163  const AvxType<ipReal64>::Type& in2,
165 };
166 
169 
170 } // end of namespace detail
171 } // end of namespace simd
172 } // end of namespace ipsdk
173 
174 #endif // __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX2_MINREGDECL_H__
int8_t ipInt8
Base types definition.
Definition: BaseTypes.h:48
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Definition: MinRegDecl.h:29
template structure which is specialized to implement the minimum computation on 2 scalars or 2 regist...
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
int32_t ipInt32
Base types definition.
Definition: BaseTypes.h:52
Predefined types for Avx instruction set management.
int16_t ipInt16
Base types definition.
Definition: BaseTypes.h:50
uint8_t ipUInt8
Base types definition.
Definition: BaseTypes.h:49
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Advanced Vector Extensions 2.
Definition: InstructionSetTypes.h:48
Definition of import/export macro for library.
structure used to retrieve AVX type associated to a base type
Definition: AvxTypes.h:33
uint16_t ipUInt16
Base types definition.
Definition: BaseTypes.h:51
float ipReal32
Base types definition.
Definition: BaseTypes.h:56
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53