IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
CeilReg.h
Go to the documentation of this file.
1 // CeilReg.h:
3 // -------------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX2_CEILREG_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX2_CEILREG_H__
17 
21 #include <IPSDKUtil/InstructionSet/Arithmetic/detail/CeilReg.h>
23 
24 namespace ipsdk {
25 namespace simd {
26 namespace detail {
27 
30 
33 template <>
35 {
36  static IPSDK_FORCEINLINE
38  act(const AvxType<ipReal32>::Type& in)
39  {
40  return _mm256_ceil_ps(in);
41  }
42 
43  static IPSDK_FORCEINLINE
44  void
45  act(const AvxType<ipReal32>::Type& in,
47  {
48  out = _mm256_ceil_ps(in);
49  }
50 };
51 
54 template <>
56 {
57  static IPSDK_FORCEINLINE
59  act(const AvxType<ipReal64>::Type& in)
60  {
61  return _mm256_ceil_pd(in);
62  }
63 
64  static IPSDK_FORCEINLINE
65  void
66  act(const AvxType<ipReal64>::Type& in,
68  {
69  out = _mm256_ceil_pd(in);
70  }
71 };
72 
75 
76 } // end of namespace detail
77 } // end of namespace simd
78 } // end of namespace ipsdk
79 
80 #endif // __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX2_CEILREG_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
template structure which is specialized to implement the computation of value rounded to closest even...
Definition: CeilReg.h:36
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
BasePack class; defines a set of scalars (for instruction set "standard") or registers (for all other...
Predefined types for Avx instruction set management.
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Advanced Vector Extensions 2.
Definition: InstructionSetTypes.h:48
Definition of import/export macro for library.
structure used to retrieve AVX type associated to a base type
Definition: AvxTypes.h:33
float ipReal32
Base types definition.
Definition: BaseTypes.h:56