IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
DivReg.h
Go to the documentation of this file.
1 // DivReg.h:
3 // -------------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX2_DIVREG_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX2_DIVREG_H__
17 
22 
23 namespace ipsdk {
24 namespace simd {
25 namespace detail {
26 
29 
32 template <>
34 {
35  static IPSDK_FORCEINLINE
37  act(const AvxType<ipReal32>::Type& in1,
38  const AvxType<ipReal32>::Type& in2)
39  {
40  return _mm256_div_ps(in1, in2);
41  }
42 
43  static IPSDK_FORCEINLINE
44  void
45  act(const AvxType<ipReal32>::Type& in1,
46  const AvxType<ipReal32>::Type& in2,
48  {
49  out = _mm256_div_ps(in1, in2);
50  }
51 };
52 
55 template <>
57 {
58  static IPSDK_FORCEINLINE
60  act(const AvxType<ipReal64>::Type& in1,
61  const AvxType<ipReal64>::Type& in2)
62  {
63  return _mm256_div_pd(in1, in2);
64  }
65 
66  static IPSDK_FORCEINLINE
67  void
68  act(const AvxType<ipReal64>::Type& in1,
69  const AvxType<ipReal64>::Type& in2,
71  {
72  out = _mm256_div_pd(in1, in2);
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_AVX2_DIVREG_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Definition: DivReg.h:39
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
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