IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
IsEvenPack.h
Go to the documentation of this file.
1 // IsEvenPack.h:
3 // -----------------
4 //
18 
19 #ifndef __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_ISEVENPACK_H__
20 #define __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_ISEVENPACK_H__
21 
23 #include <IPSDKUtil/InstructionSet/Arithmetic/detail/IsEvenReg.h>
27 
28 namespace ipsdk {
29 namespace simd {
30 namespace detail {
31 
34 
37 template <eInstructionSet::domain instructionSet,
38  typename T, typename Enable=void>
39 struct IsEvenPack
40 {
41  static
42  IPSDK_FORCEINLINE
44  act(const typename IS2Pack<instructionSet, T>::Type& in)
45  {
46  return UnaryPackOpRetMask<instructionSet, T,
48  }
49 
50  static
51  IPSDK_FORCEINLINE
52  void
53  act(const typename IS2Pack<instructionSet, T>::Type& in,
55  {
57  in, out);
58  }
59 };
60 
63 
64 } // end of namespace detail
65 } // end of namespace simd
66 } // end of namespace ipsdk
67 
68 #endif // __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_ISEVENPACK_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Definition: UnaryPackOpRetMask.h:31
Definition: IsEvenPack.h:39
Definition of import/export macro for library.
template structure which is specialized to implement the isEven function
Definition: IsEvenReg.h:35
Definition: IS2Pack.h:34