IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ScatterPackImpl.h
Go to the documentation of this file.
1 // ScatterPackImpl.h:
3 // ------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_STD_SCATTERPACKIMPL_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_STD_SCATTERPACKIMPL_H__
17 
22 
23 namespace ipsdk {
24 namespace simd {
25 namespace detail {
26 
29 
30 template <typename T>
31 IPSDK_FORCEINLINE
32 void
33 ScatterPack<eInstructionSet::eIS_Standard, T>::act(
34  const BasePack<ePackType::ePT_Scalar, T>& in,
35  const ipUInt32* indexes,
36  T* const outBaseAddress)
37 {
38  outBaseAddress[*indexes] = in._val;
39 }
40 
41 template <typename T>
42 IPSDK_FORCEINLINE
43 void
44 ScatterPack<eInstructionSet::eIS_Standard, T>::act(
45  const BasePack<ePackType::ePT_Scalar, T>& in,
46  const BasePack<ePackType::ePT_Scalar, ipUInt32>& packIdx,
47  T* const outBaseAddress)
48 {
49  outBaseAddress[packIdx._val] = in._val;
50 }
51 
54 
55 } // end of namespace detail
56 } // end of namespace simd
57 } // end of namespace ipsdk
58 
59 #endif // __IPSDKUTIL_INSTRUCTIONSET_SCATTER_DETAIL_STD_SCATTERPACKIMPL_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