IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BinaryPackOp.h
Go to the documentation of this file.
1 // BinaryPackOp.h:
3 // ------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_STD_BINARYPACKOP_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_STD_BINARYPACKOP_H__
17 
23 
24 namespace ipsdk {
25 namespace simd {
26 namespace detail {
27 
30 
31 // template structure associated to unload function
32 template <typename T, class OpClass, typename Scalar>
33 struct BinaryPackOp<eInstructionSet::eIS_Standard, T, OpClass, Scalar>
34 {
35  static IPSDK_FORCEINLINE
39  {
41  out._val = OpClass::act(in1._val, in2._val);
42  return out;
43  }
44 
45  static IPSDK_FORCEINLINE
46  void
50  {
51  OpClass::act(in1._val, in2._val, out._val);
52  }
53 
54  static IPSDK_FORCEINLINE
55  void
56  act_io_io(BasePack<ePackType::ePT_Scalar, T>& inOut1,
58  {
59  OpClass::act(inOut1._val, inOut2._val);
60  }
61 
62  static IPSDK_FORCEINLINE
63  void
64  actPackScalar(const BasePack<ePackType::ePT_Scalar, T>& in1,
65  const Scalar& in2,
67  {
68  OpClass::act(in1._val, in2, out._val);
69  }
70 };
71 
74 
75 } // end of namespace detail
76 } // end of namespace simd
77 } // end of namespace ipsdk
78 
79 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_STD_BINARYPACKOP_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
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
Definition: BinaryPackOp.h:31