IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ifElse.h
Go to the documentation of this file.
1 // ifElse.h:
3 // -----------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_LOGICAL_IFELSE_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_LOGICAL_IFELSE_H__
17 
19 
25 
26 namespace ipsdk {
27 namespace simd {
28 
31 
33 template <eInstructionSet::domain instructionSet,
34  ePackType::domain packType,
35  typename T>
36 IPSDK_FORCEINLINE
37 BasePack<packType, T>
39  const BasePack<packType, T>& in1,
40  const BasePack<packType, T>& in2)
41 {
43  in1, in2);
44 }
45 
46 template <eInstructionSet::domain instructionSet,
47  ePackType::domain packType,
48  typename T>
49 IPSDK_FORCEINLINE
50 void
51 ifElse(const BaseMaskPack<packType, T>& mask,
52  const BasePack<packType, T>& in1,
53  const BasePack<packType, T>& in2,
54  BasePack<packType, T>& out)
55 {
56  detail::IfElsePack<instructionSet, T>::act(
57  mask, in1, in2, out);
58 }
59 
62 
63 } // end of namespace simd
64 } // end of namespace ipsdk
65 
66 #endif // __IPSDKUTIL_INSTRUCTIONSET_LOGICAL_IFELSE_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
structure containing set of masks for vectorized operations
Definition: BaseMaskPackDecl.h:29
BaseMaskPack class; defines a set of masks; the number of masks in this set depends on the type of th...
BasePack class; defines a set of scalars (for instruction set "standard") or registers (for all other...
IPSDK_FORCEINLINE BasePack< packType, T > ifElse(const BaseMaskPack< packType, T > &mask, const BasePack< packType, T > &in1, const BasePack< packType, T > &in2)
ifElse function; TODO
Definition: ifElse.h:38
defines template structures PromotedType<T1, T2> and PromotedType3<T1, T2, T3>; their attribute Type ...
Definition of import/export macro for library.
Definition: IfElsePack.h:30
structure containing intrinsic registers used to store vectorized data
Definition: BasePackDecl.h:29