IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
UnloadPack.h
Go to the documentation of this file.
1 // UnloadPack.h:
3 // ------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_UNLOADPACK_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_UNLOADPACK_H__
17 
22 
23 namespace ipsdk {
24 namespace simd {
25 namespace detail {
26 
29 
30 template <typename T>
32  typename boost::enable_if_c<sizeof(T) == 4>::type>
33 {
34  static IPSDK_FORCEINLINE
35  void act(const BasePack<ePackType::ePT_Avx, T>& pack, T* pT)
36  {
39  pT + AvxStep<T>::Value);
41  pT + 2*AvxStep<T>::Value);
43  pT + 3*AvxStep<T>::Value);
44  }
45 };
46 
47 template <typename T>
49  typename boost::enable_if_c<sizeof(T) == 8>::type>
50 {
51  static IPSDK_FORCEINLINE
52  void act(const BasePack<ePackType::ePT_Avx, T>& pack, T* pT)
53  {
56  pT + AvxStep<T>::Value);
58  pT + 2*AvxStep<T>::Value);
60  pT + 3*AvxStep<T>::Value);
62  pT + 4*AvxStep<T>::Value);
64  pT + 5*AvxStep<T>::Value);
66  pT + 6*AvxStep<T>::Value);
68  pT + 7*AvxStep<T>::Value);
69  }
70 };
71 
74 
75 } // end of namespace detail
76 } // end of namespace simd
77 } // end of namespace ipsdk
78 
79 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX_UNLOADPACK_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Definition: UnloadPack.h:30
Definition: BasePack.h:30
BasePack class; defines a set of scalars (for instruction set "standard") or registers (for all other...
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Advanced Vector Extensions.
Definition: InstructionSetTypes.h:44
Predefined types associated to instruction set management.
Definition of import/export macro for library.
Definition: UnloadReg.h:30