IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BinaryPackOpRetMask.h
Go to the documentation of this file.
1 // BinaryPackOpRetMask.h:
3 // ------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_STD_BINARYPACKOPRETMASK_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_STD_BINARYPACKOPRETMASK_H__
17 
24 
25 namespace ipsdk {
26 namespace simd {
27 namespace detail {
28 
31 
32 // template structure associated to unload function
33 template <typename T, class OpClass, typename Scalar>
34 struct BinaryPackOpRetMask<eInstructionSet::eIS_Standard, T, OpClass, Scalar>
35 {
36  static IPSDK_FORCEINLINE
40  {
42  out._val = OpClass::act(in1._val, in2._val);
43  return out;
44  }
45 
46  static IPSDK_FORCEINLINE
47  void
51  {
52  OpClass::act(in1._val, in2._val, out._val);
53  }
54 
55  static IPSDK_FORCEINLINE
56  void
57  actPackScalar(const BasePack<ePackType::ePT_Scalar, T>& in1,
58  const Scalar& in2,
60  {
61  OpClass::act(in1._val, in2, out._val);
62  }
63 };
64 
67 
68 } // end of namespace detail
69 } // end of namespace simd
70 } // end of namespace ipsdk
71 
72 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_STD_BINARYPACKOPRETMASK_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
BaseMaskPack class; defines a set of masks; the number of masks in this set depends on the type of th...
Definition: BinaryPackOpRetMask.h:31
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
Predefined types associated to instruction set management.
Definition of import/export macro for library.
compiler optimisations only
Definition: InstructionSetTypes.h:34