IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
GatherPackImpl.h
Go to the documentation of this file.
1 // GatherPackImpl.h:
3 // ------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_STD_GATHERPACKIMPL_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_STD_GATHERPACKIMPL_H__
17 
22 
23 namespace ipsdk {
24 namespace simd {
25 namespace detail {
26 
29 
30 template <typename T>
31 IPSDK_FORCEINLINE
32 void
33 GatherPack<eInstructionSet::eIS_Standard, T>::act(
34  const T* baseAddress,
35  const ipUInt32* indexes,
36  BasePack<ePackType::ePT_Scalar, T>& out)
37 {
38  out._val = baseAddress[*indexes];
39 }
40 
41 template <typename T>
42 IPSDK_FORCEINLINE
43 void
44 GatherPack<eInstructionSet::eIS_Standard, T>::act(
45  const T* baseAddress,
46  const BasePack<ePackType::ePT_Scalar, ipUInt32>& packIdx,
47  BasePack<ePackType::ePT_Scalar, T>& out)
48 {
49  out._val = baseAddress[packIdx._val];
50 }
51 
54 
55 } // end of namespace detail
56 } // end of namespace simd
57 } // end of namespace ipsdk
58 
59 #endif // __IPSDKUTIL_INSTRUCTIONSET_GATHER_DETAIL_STD_GATHERPACKIMPL_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Definition of import/export macro for library.
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53