IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
AbsPack.h
Go to the documentation of this file.
1 // AbsPack.h:
3 // -----------------
4 //
18 
19 #ifndef __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_ABSPACK_H__
20 #define __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_ABSPACK_H__
21 
25 
26 #include <IPSDKUtil/InstructionSet/Arithmetic/detail/AbsReg.h>
28 #include <boost/type_traits/is_float.hpp>
29 #include <boost/type_traits/is_signed.hpp>
30 
31 namespace ipsdk {
32 namespace simd {
33 namespace detail {
34 
37 
44 template <eInstructionSet::domain instructionSet,
45  typename T, typename Enable=void>
46 struct AbsPack
47 {
48  static
49  IPSDK_FORCEINLINE
51  act(const typename IS2Pack<instructionSet, T>::Type& in)
52  {
54  act(in, out);
55  return out;
56  }
57 
58  static
59  IPSDK_FORCEINLINE
60  void
61  act(const typename IS2Pack<instructionSet, T>::Type& in,
63  {
64  detail::UnaryPackOp<instructionSet, T,
65  detail::AbsReg<instructionSet, T> >::act(in, out);
66  }
67 };
68 
71 
72 } // end of namespace detail
73 } // end of namespace simd
74 } // end of namespace ipsdk
75 
76 #endif // __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_ABSPACK_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Predefined types associated to instruction set management.
Definition of import/export macro for library.
template structure which is specialized to implement the computation of abs function on a scalar or a...
Definition: AbsReg.h:46
Definition: UnaryPackOp.h:31
Definition: AbsPack.h:46
Definition: IS2Pack.h:34