IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
IfElsePack.h
Go to the documentation of this file.
1 // IfElsePack.h:
3 // -------------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_LOGICAL_DETAIL_SSE2_IFELSEPACK_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_LOGICAL_DETAIL_SSE2_IFELSEPACK_H__
17 
22 
23 namespace ipsdk {
24 namespace simd {
25 namespace detail {
26 
29 
32 template <typename T>
34  typename boost::enable_if_c<true>::type
35  >
36 {
37  static IPSDK_FORCEINLINE
42  {
44  cast<eInstructionSet::eIS_Sse2>(mask, packFromMask);
45 
47 
48  bitwiseSelect(packFromMask, in1, in2, out);
49  return out;
50  }
51 
52  static IPSDK_FORCEINLINE
53  void
58  {
60  cast<eInstructionSet::eIS_Sse2>(mask, packFromMask);
61 
62  bitwiseSelect<eInstructionSet::eIS_Sse2>(packFromMask, in1, in2, out);
63  }
64 };
65 
68 
69 } // end of namespace detail
70 } // end of namespace simd
71 } // end of namespace ipsdk
72 
73 #endif // __IPSDKUTIL_INSTRUCTIONSET_LOGICAL_DETAIL_SSE2_IFELSEPACK_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
cast function; casts a Pack<instructionSet, TIn> to a Pack<instructionSet, TOut>
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Definition of import/export macro for library.
IPSDK_FORCEINLINE PackT bitwiseSelect(const PackT &mask, const PackT &in1, const PackT &in2)
bitwiseSelect function; vectorized arithmetic addition of data contained in 2 Register structures ...
Definition: bitwiseSelect.h:37
Definition: IfElsePack.h:30
Streaming SIMD Extensions 2.
Definition: InstructionSetTypes.h:36