IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
SqrtReg.h
Go to the documentation of this file.
1 // SqrtReg.h:
3 // -------------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX512_SQRTREG_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX512_SQRTREG_H__
17 
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  {
39  return _mm512_sqrt_ps(in);
40  }
41 
42  static IPSDK_FORCEINLINE
43  void
44  act(const Avx512Type<ipReal32>::Type& in,
46  {
47  out = _mm512_sqrt_ps(in);
48  }
49 };
50 
53 template <>
55 {
56  static IPSDK_FORCEINLINE
58  act(const Avx512Type<ipReal64>::Type& in)
59  {
60  return _mm512_sqrt_pd(in);
61  }
62 
63  static IPSDK_FORCEINLINE
64  void
65  act(const Avx512Type<ipReal64>::Type& in,
67  {
68  out = _mm512_sqrt_pd(in);
69  }
70 };
71 
74 
75 } // end of namespace detail
76 } // end of namespace simd
77 } // end of namespace ipsdk
78 
79 #endif // __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX512_SQRTREG_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Definition: SqrtReg.h:39
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
(including fundation and byte and word instructions)
Definition: InstructionSetTypes.h:51
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Predefined types for Avx512 instruction set management.
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