IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
RoundToEvenPack.h
Go to the documentation of this file.
1 // RoundToEvenPack.h:
3 // -----------------
4 //
18 
19 #ifndef __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_ROUNDTOEVENPACK_H__
20 #define __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_ROUNDTOEVENPACK_H__
21 
23 #include <IPSDKUtil/InstructionSet/Arithmetic/detail/RoundToEvenReg.h>
27 
28 namespace ipsdk {
29 namespace simd {
30 namespace detail {
31 
34 
37 template <eInstructionSet::domain instructionSet,
38  typename T, typename Enable=void>
40 {
41 };
42 
43 // implementation for ipReal32 type
44 template <eInstructionSet::domain instructionSet>
45 struct RoundToEvenPack<instructionSet, ipReal32>
46 {
47  static
48  IPSDK_FORCEINLINE
50  act(const typename IS2Pack<instructionSet, ipReal32>::Type& in)
51  {
52  return UnaryPackOp<instructionSet, ipReal32,
54  }
55 
56  static
57  IPSDK_FORCEINLINE
58  void
59  act(const typename IS2Pack<instructionSet, ipReal32>::Type& in,
61  {
63  in, out);
64  }
65 };
66 
67 // implementation for ipReal32 type
68 template <eInstructionSet::domain instructionSet>
69 struct RoundToEvenPack<instructionSet, ipReal64>
70 {
71  static
72  IPSDK_FORCEINLINE
74  act(const typename IS2Pack<instructionSet, ipReal64>::Type& in)
75  {
76  return UnaryPackOp<instructionSet, ipReal64,
78  }
79 
80  static
81  IPSDK_FORCEINLINE
82  void
83  act(const typename IS2Pack<instructionSet, ipReal64>::Type& in,
85  {
87  in, out);
88  }
89 };
90 
93 
94 } // end of namespace detail
95 } // end of namespace simd
96 } // end of namespace ipsdk
97 
98 #endif // __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_ROUNDTOEVENPACK_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Definition: RoundToEvenPack.h:39
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
Definition of import/export macro for library.
template structure which is specialized to implement the computation of value rounded to closest even...
Definition: RoundToEvenReg.h:36
Definition: UnaryPackOp.h:31
float ipReal32
Base types definition.
Definition: BaseTypes.h:56
Definition: IS2Pack.h:34