CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Public Attributes
mathSSE::Vec4< double > Union Template Reference

#include <AVXVec.h>

Public Types

typedef __m256d nativeType
 

Public Member Functions

double __attribute__ ((aligned(32))) arr[4]
 
template<int N>
Vec4 get1 () const
 
double & operator[] (unsigned int n)
 
double operator[] (unsigned int n) const
 
void set (double f1, double f2, double f3, double f4=0)
 
void set1 (double f1)
 
void setMask (unsigned int m1, unsigned int m2, unsigned int m3, unsigned int m4)
 
 Vec4 (__m256d ivec)
 
 Vec4 (OldVec< double > const &ivec)
 
 Vec4 ()
 
 Vec4 (Vec4< float > ivec)
 
 Vec4 (double f1)
 
 Vec4 (double f1, double f2, double f3, double f4=0)
 
 Vec4 (Vec2< double > ivec0, Vec2< double > ivec1)
 
 Vec4 (Vec2< double > ivec0, double f3, double f4=0)
 
 Vec4 (Vec2< double > ivec0)
 
Vec2< double > xy () const
 
Vec2< double > zw () const
 

Public Attributes

OldVec< double > o
 
__m256d vec
 

Detailed Description

template<>
union mathSSE::Vec4< double >

Definition at line 9 of file AVXVec.h.

Member Typedef Documentation

typedef __m256d mathSSE::Vec4< double >::nativeType

Definition at line 10 of file AVXVec.h.

Constructor & Destructor Documentation

mathSSE::Vec4< double >::Vec4 ( __m256d  ivec)
inline

Definition at line 15 of file AVXVec.h.

15 : vec(ivec) {}
mathSSE::Vec4< double >::Vec4 ( OldVec< double > const &  ivec)
inline

Definition at line 17 of file AVXVec.h.

17 : o(ivec) {}
OldVec< double > o
Definition: AVXVec.h:13
mathSSE::Vec4< double >::Vec4 ( )
inline

Definition at line 19 of file AVXVec.h.

19  {
20  vec = _mm256_setzero_pd();
21  }
mathSSE::Vec4< double >::Vec4 ( Vec4< float >  ivec)
inline

Definition at line 24 of file AVXVec.h.

24  {
25  vec = _mm256_cvtps_pd(ivec.vec);
26  }
mathSSE::Vec4< double >::Vec4 ( double  f1)
inlineexplicit

Definition at line 28 of file AVXVec.h.

References mathSSE::Vec4< T >::set1().

28  {
29  set1(f1);
30  }
void set1(double f1)
Definition: AVXVec.h:63
mathSSE::Vec4< double >::Vec4 ( double  f1,
double  f2,
double  f3,
double  f4 = 0 
)
inline
mathSSE::Vec4< double >::Vec4 ( Vec2< double >  ivec0,
Vec2< double >  ivec1 
)
inline

Definition at line 37 of file AVXVec.h.

37  {
38  vec = _mm256_insertf128_pd(vec,ivec0.vec,0);
39  vec = _mm256_insertf128_pd(vec,ivec1.vec,1);
40 
41  }
mathSSE::Vec4< double >::Vec4 ( Vec2< double >  ivec0,
double  f3,
double  f4 = 0 
)
inline

Definition at line 43 of file AVXVec.h.

References connectstrParser::f3, and connectstrParser::f4.

43  {
44  vec = _mm256_insertf128_pd(vec,ivec0.vec,0);
45  arr[2] = f3; arr[3] = f4;
46  }
mathSSE::Vec4< double >::Vec4 ( Vec2< double >  ivec0)
inline

Definition at line 48 of file AVXVec.h.

48  {
49  vec = _mm256_setzero_pd();
50  vec = _mm256_insertf128_pd(vec,ivec0.vec,0);
51  }

Member Function Documentation

double mathSSE::Vec4< double >::__attribute__ ( (aligned(32))  )
template<int N>
Vec4 mathSSE::Vec4< double >::get1 ( ) const
inline

Definition at line 68 of file AVXVec.h.

References N.

68  {
69  return _mm256_set1_pd(arr[N]); //FIXME
70  }
#define N
Definition: blowfish.cc:9
double& mathSSE::Vec4< double >::operator[] ( unsigned int  n)
inline

Definition at line 76 of file AVXVec.h.

References gen::n.

76  {
77  return arr[n];
78  }
double mathSSE::Vec4< double >::operator[] ( unsigned int  n) const
inline

Definition at line 80 of file AVXVec.h.

References gen::n.

80  {
81  return arr[n];
82  }
void mathSSE::Vec4< double >::set ( double  f1,
double  f2,
double  f3,
double  f4 = 0 
)
inline

Definition at line 59 of file AVXVec.h.

void mathSSE::Vec4< double >::set1 ( double  f1)
inline

Definition at line 63 of file AVXVec.h.

63  {
64  vec = _mm256_set1_pd(f1);
65  }
void mathSSE::Vec4< double >::setMask ( unsigned int  m1,
unsigned int  m2,
unsigned int  m3,
unsigned int  m4 
)
inline

Definition at line 55 of file AVXVec.h.

References RecoTauDiscriminantConfiguration::mask.

55  {
56  Mask4<double> mask(m1,m2,m3,m4); vec=mask.vec;
57  }
Vec2<double> mathSSE::Vec4< double >::xy ( ) const
inline

Definition at line 84 of file AVXVec.h.

Referenced by mathSSE::as3D(), and geometryXMLparser.Alignable::covariance().

84 { return Vec2<double>(_mm256_castpd256_pd128(vec));}
ExtVec< T, 2 > Vec2
Definition: ExtVec.h:63
Vec2<double> mathSSE::Vec4< double >::zw ( ) const
inline

Definition at line 85 of file AVXVec.h.

References vec, and mathSSE::Vec4< T >::Vec4().

85 { return Vec2<double>(_mm256_castpd256_pd128(_mm256_permute2f128_pd(vec,vec,1)));}
ExtVec< T, 2 > Vec2
Definition: ExtVec.h:63

Member Data Documentation

OldVec<double> mathSSE::Vec4< double >::o

Definition at line 13 of file AVXVec.h.

__m256d mathSSE::Vec4< double >::vec