IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
FloorReg.h
Go to the documentation of this file.
1 // FloorReg.h:
3 // -------------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX_FLOORREG_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX_FLOORREG_H__
17 
21 
22 namespace ipsdk {
23 namespace simd {
24 namespace detail {
25 
28 
31 template <>
33 {
34  static IPSDK_FORCEINLINE
36  act(const AvxType<ipReal32>::Type& in)
37  {
38  return _mm256_floor_ps(in);
39  }
40 
41  static IPSDK_FORCEINLINE
42  void
43  act(const AvxType<ipReal32>::Type& in,
45  {
46  out = _mm256_floor_ps(in);
47  }
48 };
49 
52 template <>
54 {
55  static IPSDK_FORCEINLINE
57  act(const AvxType<ipReal64>::Type& in)
58  {
59  return _mm256_floor_pd(in);
60  }
61 
62  static IPSDK_FORCEINLINE
63  void
64  act(const AvxType<ipReal64>::Type& in,
66  {
67  out = _mm256_floor_pd(in);
68  }
69 };
70 
73 
74 } // end of namespace detail
75 } // end of namespace simd
76 } // end of namespace ipsdk
77 
78 #endif // __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX_FLOORREG_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
template structure which is specialized to implement the computation of value rounded to closest even...
Definition: FloorReg.h:36
Predefined types for Avx instruction set management.
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Advanced Vector Extensions.
Definition: InstructionSetTypes.h:44
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