IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
isEven.h
Go to the documentation of this file.
1 // isEven.h:
3 // -----------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_ISEVEN_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_ISEVEN_H__
17 
19 
20 #include <IPSDKUtil/InstructionSet/Arithmetic/detail/IsEvenReg.h>
24 
25 namespace ipsdk {
26 namespace simd {
27 
30 
32 template <eInstructionSet::domain instructionSet, class PackT>
33 IPSDK_FORCEINLINE
34 typename Pack2MaskPackType<PackT>::Type
35 isEven(const PackT& in)
36 {
37  typedef typename PackT::DataType T;
38  return detail::UnaryPackOpRetMask<instructionSet, T,
39  detail::IsEvenReg<instructionSet, T> >::act(in);
40 }
41 
43 template <eInstructionSet::domain instructionSet, class PackT>
44 IPSDK_FORCEINLINE
45 void
46 isEven(const PackT& in, typename Pack2MaskPackType<PackT>::Type& out)
47 {
48  typedef typename PackT::DataType T;
49  detail::UnaryPackOpRetMask<instructionSet, T,
50  detail::IsEvenReg<instructionSet, T> >::act(in, out);
51 }
52 
55 
56 } // end of namespace simd
57 } // end of namespace ipsdk
58 
59 #endif // __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_ISEVEN_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Vector DataType
data type used for estimation
Definition: EstimationTypes.h:58
Definition of import/export macro for library.