IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
SortRegImpl.h
Go to the documentation of this file.
1 // SortRegImpl.h:
3 // -----------------
4 //
13 
14 #ifndef __IPSDKUTIL_INSTRUCTIONSET_COMPARISON_DETAIL_SORTREGIMPL_H__
15 #define __IPSDKUTIL_INSTRUCTIONSET_COMPARISON_DETAIL_SORTREGIMPL_H__
16 
20 
21 namespace ipsdk {
22 namespace simd {
23 namespace detail {
24 
27 
30 template <eInstructionSet::domain instructionSet, typename T>
31 IPSDK_FORCEINLINE void
32 SortReg<
33  instructionSet,
34  T,
35  typename boost::enable_if<
36  typename boost::mpl::not_equal_to<
37  boost::mpl::int_<instructionSet>,
38  boost::mpl::int_<eInstructionSet::eIS_Sse2>
39  >::type
40  >::type
41 >::act(
42  typename RegType<instructionSet, T>::Type& inOut1,
43  typename RegType<instructionSet, T>::Type& inOut2)
44 {
45  typename RegType<instructionSet, T>::Type savedInOut1 = inOut1;
46  MinReg<instructionSet, T>::act(inOut1, inOut2, inOut1);
47  MaxReg<instructionSet, T>::act(savedInOut1, inOut2, inOut2);
48 }
49 
52 
53 } // end of namespace detail
54 } // end of namespace simd
55 } // end of namespace ipsdk
56 
57 #endif // __IPSDKUTIL_INSTRUCTIONSET_COMPARISON_DETAIL_SORTREGIMPL_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
template structure which is specialized to implement the minimum computation on 2 scalars or 2 regist...
template structure which is specialized to implement the maximum computation on 2 scalars or 2 regist...
SortReg<eInstructionSet::domain instructionSet, typename T> structure.