IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
gather.h
Go to the documentation of this file.
1 // gather.h:
3 // ------------
4 //
13 
14 #ifndef __IPSDKUTIL_INSTRUCTIONSET_GATHER_GATHER_H__
15 #define __IPSDKUTIL_INSTRUCTIONSET_GATHER_GATHER_H__
16 
20 
21 namespace ipsdk {
22 namespace simd {
23 
26 
28 template <eInstructionSet::domain instructionSet, class PackT>
29 IPSDK_FORCEINLINE
30 void
31 gather(const typename PackT::DataType* baseAddr,
32  const typename IS2Pack<instructionSet, ipUInt32>::Type& packIdx,
33  PackT& out)
34 {
35  typedef typename PackT::DataType T;
36  detail::GatherPack<instructionSet, T>::act(baseAddr, packIdx, out);
37 }
38 
39 template <eInstructionSet::domain instructionSet, class PackT>
40 IPSDK_FORCEINLINE
41 void
42 gather(const typename PackT::DataType* baseAddr,
43  const ipUInt32* indexes,
44  PackT& out)
45 {
46  typedef typename PackT::DataType T;
47  detail::GatherPack<instructionSet, T>::act(baseAddr, indexes, out);
48 }
49 
52 
53 } // end of namespace simd
54 } // end of namespace ipsdk
55 
57 
58 #endif // __IPSDKUTIL_INSTRUCTIONSET_GATHER_GATHER_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Vector DataType
data type used for estimation
Definition: EstimationTypes.h:58
Definition of import/export macro for library.
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53