IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
NormalRandomPack.h
Go to the documentation of this file.
1 // NormalRandomPack.h:
3 // -------------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX2_NORMALRANDOMPACK_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_AVX2_NORMALRANDOMPACK_H__
17 
24 
25 namespace ipsdk {
26 namespace simd {
27 namespace detail {
28 
31 
32 template <eInstructionSet::domain ISFma>
34 {
35  static
36  IPSDK_FORCEINLINE
37  void
44  {
47  rMean, rSigma, rUnifRand1._val[0], rUnifRand2._val[0], rOut1, rOut2);
48  out1._val[0] = rOut1;
49  out2._val[0] = rOut2;
50 
52  rMean, rSigma, rUnifRand1._val[1], rUnifRand2._val[1], rOut1, rOut2);
53  out1._val[1] = rOut1;
54  out2._val[1] = rOut2;
55 
57  rMean, rSigma, rUnifRand1._val[2], rUnifRand2._val[2], rOut1, rOut2);
58  out1._val[2] = rOut1;
59  out2._val[2] = rOut2;
60 
62  rMean, rSigma, rUnifRand1._val[3], rUnifRand2._val[3], rOut1, rOut2);
63  out1._val[3] = rOut1;
64  out2._val[3] = rOut2;
65  }
66 };
67 
68 template <eInstructionSet::domain ISFma, typename T>
70  typename boost::enable_if_c<boost::is_integral<T>::value>::type>
71 {
72  static
73  IPSDK_FORCEINLINE
74  void
81  {
84  rMean, rSigma, rUnifRand1._val[0], rUnifRand2._val[0], rOut1, rOut2);
86  NormalRandomPack<eInstructionSet::eIS_Avx2, ISFma, ipReal32>::act(rMean, rSigma, rUnifRand1, rUnifRand2, out1F32, out2F32);
89  }
90 };
91 
94 
95 } // end of namespace detail
96 } // end of namespace simd
97 } // end of namespace ipsdk
98 
99 #endif // __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_AVX2_NORMALRANDOMPACK_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Definition: NormalRandomReg.h:42
saturated round function; returns the round values of the elements of a pack
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
Advanced Vector Extensions 2.
Definition: InstructionSetTypes.h:48
NormalRandomPack<eInstructionSet::domain instructionSet, typename T, typename Enable=void> structure...
Definition of import/export macro for library.
Definition: NormalRandomPack.h:34
Definition: RegType.h:29
float ipReal32
Base types definition.
Definition: BaseTypes.h:56
Definition: SaturatedRoundPack.h:43
structure containing intrinsic registers used to store vectorized data
Definition: BasePackDecl.h:29