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_AVX512_FLOORREG_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX512_FLOORREG_H__
17 
20 #include <IPSDKUtil/InstructionSet/Arithmetic/detail/FloorReg.h>
22 
23 namespace ipsdk {
24 namespace simd {
25 namespace detail {
26 
29 
32 template <>
34 {
35  static IPSDK_FORCEINLINE
37  act(const Avx512Type<ipReal32>::Type& in)
38  {
40  act(in, out);
41  return out;
42  }
43 
44  static IPSDK_FORCEINLINE
45  void
46  act(const Avx512Type<ipReal32>::Type& in,
48  {
49  out = _mm512_roundscale_ps(in, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
50  }
51 };
52 
55 template <>
57 {
58  static IPSDK_FORCEINLINE
60  act(const Avx512Type<ipReal64>::Type& in)
61  {
63  act(in, out);
64  return out;
65  }
66 
67  static IPSDK_FORCEINLINE
68  void
69  act(const Avx512Type<ipReal64>::Type& in,
71  {
72  out = _mm512_roundscale_pd(in, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
73  }
74 };
75 
78 
79 } // end of namespace detail
80 } // end of namespace simd
81 } // end of namespace ipsdk
82 
83 #endif // __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX512_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
(including fundation and byte and word instructions)
Definition: InstructionSetTypes.h:51
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
Definition of import/export macro for library.
float ipReal32
Base types definition.
Definition: BaseTypes.h:56
structure used to retrieve AVX512 type associated to a base type
Definition: Avx512Types.h:36