STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Protected Attributes | Friends | List of all members
F64vec4 Class Reference

#include <dvec.h>

Public Member Functions

 F64vec4 ()
 
 F64vec4 (__m256d m)
 
 F64vec4 (double d3, double d2, double d1, double d0)
 
EXPLICIT F64vec4 (double d)
 
 operator __m256d () const
 
F64vec4operator+= (const F64vec4 &a)
 
F64vec4operator-= (const F64vec4 &a)
 
F64vec4operator*= (const F64vec4 &a)
 
F64vec4operator/= (const F64vec4 &a)
 
F64vec4operator&= (const F64vec4 &a)
 
F64vec4operator|= (const F64vec4 &a)
 
F64vec4operator^= (const F64vec4 &a)
 
const double & operator[] (int i) const
 
double & operator[] (int i)
 

Protected Attributes

__m256d vec
 

Friends

F64vec4 operator& (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 operator| (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 operator^ (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 operator+ (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 operator- (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 operator* (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 operator/ (const F64vec4 &a, const F64vec4 &b)
 
double add_horizontal (const F64vec4 &a)
 
F64vec4 andnot (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 sqrt (const F64vec4 &a)
 
F64vec4 cmp_eq (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 cmp_lt (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 cmp_le (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 cmp_gt (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 cmp_ge (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 cmp_neq (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 cmp_nlt (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 cmp_nle (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 cmp_ngt (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 cmp_nge (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 simd_min (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 simd_max (const F64vec4 &a, const F64vec4 &b)
 
F64vec4 abs (const F64vec4 &a)
 

Constructor & Destructor Documentation

F64vec4::F64vec4 ( )
inline
1410 {}
F64vec4::F64vec4 ( __m256d  m)
inline
1413 { vec = m; }
__m128d m
Definition: dvec.h:71
__m256d vec
Definition: dvec.h:1405
F64vec4::F64vec4 ( double  d3,
double  d2,
double  d1,
double  d0 
)
inline
1417  {
1418  vec = _mm256_set_pd(d3,d2,d1,d0);
1419  }
__m256d __cdecl _mm256_set_pd(double, double, double, double)
__m256d vec
Definition: dvec.h:1405
EXPLICIT F64vec4::F64vec4 ( double  d)
inline
1422 { vec = _mm256_set1_pd(d); }
__m256d vec
Definition: dvec.h:1405
__m256d __cdecl _mm256_set1_pd(double)

Member Function Documentation

F64vec4::operator __m256d ( ) const
inline
1425 { return vec; }
__m256d vec
Definition: dvec.h:1405
F64vec4& F64vec4::operator&= ( const F64vec4 a)
inline
1442 { return *this = _mm256_and_pd(vec,a); }
__m256d __cdecl _mm256_and_pd(__m256d, __m256d)
__m256d vec
Definition: dvec.h:1405
F64vec4& F64vec4::operator*= ( const F64vec4 a)
inline
1440 { return *this = _mm256_mul_pd(vec,a); }
__m256d __cdecl _mm256_mul_pd(__m256d, __m256d)
__m256d vec
Definition: dvec.h:1405
F64vec4& F64vec4::operator+= ( const F64vec4 a)
inline
1438 { return *this = _mm256_add_pd(vec,a); }
__m256d vec
Definition: dvec.h:1405
__m256d __cdecl _mm256_add_pd(__m256d, __m256d)
F64vec4& F64vec4::operator-= ( const F64vec4 a)
inline
1439 { return *this = _mm256_sub_pd(vec,a); }
__m256d __cdecl _mm256_sub_pd(__m256d, __m256d)
__m256d vec
Definition: dvec.h:1405
F64vec4& F64vec4::operator/= ( const F64vec4 a)
inline
1441 { return *this = _mm256_div_pd(vec,a); }
__m256d __cdecl _mm256_div_pd(__m256d, __m256d)
__m256d vec
Definition: dvec.h:1405
const double& F64vec4::operator[] ( int  i) const
inline
1516  {
1517  /* Assert enabled only during debug /DDEBUG */
1518  _VEC_ASSERT((0 <= i) && (i <= 3));
1519  double *dp = (double*)&vec;
1520  return *(dp+i);
1521  }
#define _VEC_ASSERT(_Expression)
Definition: dvec.h:53
int i[4]
Definition: dvec.h:70
__m256d vec
Definition: dvec.h:1405
double& F64vec4::operator[] ( int  i)
inline
1524  {
1525  /* Assert enabled only during debug /DDEBUG */
1526  _VEC_ASSERT((0 <= i) && (i <= 3));
1527  double *dp = (double*)&vec;
1528  return *(dp+i);
1529  }
#define _VEC_ASSERT(_Expression)
Definition: dvec.h:53
int i[4]
Definition: dvec.h:70
__m256d vec
Definition: dvec.h:1405
F64vec4& F64vec4::operator^= ( const F64vec4 a)
inline
1444 { return *this = _mm256_xor_pd(vec,a); }
__m256d vec
Definition: dvec.h:1405
__m256d __cdecl _mm256_xor_pd(__m256d, __m256d)
F64vec4& F64vec4::operator|= ( const F64vec4 a)
inline
1443 { return *this = _mm256_or_pd(vec,a); }
__m256d vec
Definition: dvec.h:1405
__m256d __cdecl _mm256_or_pd(__m256d, __m256d)

Friends And Related Function Documentation

F64vec4 abs ( const F64vec4 a)
friend
1489  {
1490  static const union
1491  {
1492  int i[8];
1493  __m256d m;
1494  } __f64vec4_abs_mask = { 0xffffffff, 0x7fffffff, 0xffffffff, 0x7fffffff,
1495  0xffffffff, 0x7fffffff, 0xffffffff, 0x7fffffff};
1496  return _mm256_and_pd(a, __f64vec4_abs_mask.m);
1497  }
__m256d __cdecl _mm256_and_pd(__m256d, __m256d)
__m256d
Definition: immintrin.h:38
__m128d m
Definition: dvec.h:71
int i[4]
Definition: dvec.h:70
double add_horizontal ( const F64vec4 a)
friend
1448  {
1449  F64vec4 temp = _mm256_add_pd(a, _mm256_permute_pd(a,0x05));
1451  }
Definition: dvec.h:1402
double _mm_cvtsd_f64(__m128d _A)
__m256d __cdecl _mm256_permute_pd(__m256d, int)
__m128d __cdecl _mm256_castpd256_pd128(__m256d)
__m256d __cdecl _mm256_add_pd(__m256d, __m256d)
__m128d _mm_add_sd(__m128d _A, __m128d _B)
__m128d __cdecl _mm256_extractf128_pd(__m256d, const int)
F64vec4 andnot ( const F64vec4 a,
const F64vec4 b 
)
friend
1454 { return _mm256_andnot_pd(a,b); }
__m256d __cdecl _mm256_andnot_pd(__m256d, __m256d)
F64vec4 cmp_eq ( const F64vec4 a,
const F64vec4 b 
)
friend
1461  { return _mm256_cmp_pd(a, b, _CMP_EQ_OQ); }
#define _CMP_EQ_OQ
Definition: immintrin.h:55
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
F64vec4 cmp_ge ( const F64vec4 a,
const F64vec4 b 
)
friend
1469  { return _mm256_cmp_pd(a, b, _CMP_GE_OS); }
#define _CMP_GE_OS
Definition: immintrin.h:70
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
F64vec4 cmp_gt ( const F64vec4 a,
const F64vec4 b 
)
friend
1467  { return _mm256_cmp_pd(a, b, _CMP_GT_OS); }
#define _CMP_GT_OS
Definition: immintrin.h:71
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
F64vec4 cmp_le ( const F64vec4 a,
const F64vec4 b 
)
friend
1465  { return _mm256_cmp_pd(a, b, _CMP_LE_OS); }
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
#define _CMP_LE_OS
Definition: immintrin.h:57
F64vec4 cmp_lt ( const F64vec4 a,
const F64vec4 b 
)
friend
1463  { return _mm256_cmp_pd(a, b, _CMP_LT_OS); }
#define _CMP_LT_OS
Definition: immintrin.h:56
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
F64vec4 cmp_neq ( const F64vec4 a,
const F64vec4 b 
)
friend
1471  { return _mm256_cmp_pd(a, b, _CMP_NEQ_UQ); }
#define _CMP_NEQ_UQ
Definition: immintrin.h:59
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
F64vec4 cmp_nge ( const F64vec4 a,
const F64vec4 b 
)
friend
1479  { return _mm256_cmp_pd(a, b, _CMP_NGE_US); }
#define _CMP_NGE_US
Definition: immintrin.h:65
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
F64vec4 cmp_ngt ( const F64vec4 a,
const F64vec4 b 
)
friend
1477  { return _mm256_cmp_pd(a, b, _CMP_NGT_US); }
#define _CMP_NGT_US
Definition: immintrin.h:67
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
F64vec4 cmp_nle ( const F64vec4 a,
const F64vec4 b 
)
friend
1475  { return _mm256_cmp_pd(a, b, _CMP_NLE_US); }
#define _CMP_NLE_US
Definition: immintrin.h:61
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
F64vec4 cmp_nlt ( const F64vec4 a,
const F64vec4 b 
)
friend
1473  { return _mm256_cmp_pd(a, b, _CMP_NLT_US); }
#define _CMP_NLT_US
Definition: immintrin.h:60
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
F64vec4 operator& ( const F64vec4 a,
const F64vec4 b 
)
friend
1428 { return _mm256_and_pd(a,b); }
__m256d __cdecl _mm256_and_pd(__m256d, __m256d)
F64vec4 operator* ( const F64vec4 a,
const F64vec4 b 
)
friend
1435 { return _mm256_mul_pd(a,b); }
__m256d __cdecl _mm256_mul_pd(__m256d, __m256d)
F64vec4 operator+ ( const F64vec4 a,
const F64vec4 b 
)
friend
1433 { return _mm256_add_pd(a,b); }
__m256d __cdecl _mm256_add_pd(__m256d, __m256d)
F64vec4 operator- ( const F64vec4 a,
const F64vec4 b 
)
friend
1434 { return _mm256_sub_pd(a,b); }
__m256d __cdecl _mm256_sub_pd(__m256d, __m256d)
F64vec4 operator/ ( const F64vec4 a,
const F64vec4 b 
)
friend
1436 { return _mm256_div_pd(a,b); }
__m256d __cdecl _mm256_div_pd(__m256d, __m256d)
F64vec4 operator^ ( const F64vec4 a,
const F64vec4 b 
)
friend
1430 { return _mm256_xor_pd(a,b); }
__m256d __cdecl _mm256_xor_pd(__m256d, __m256d)
F64vec4 operator| ( const F64vec4 a,
const F64vec4 b 
)
friend
1429 { return _mm256_or_pd(a,b); }
__m256d __cdecl _mm256_or_pd(__m256d, __m256d)
F64vec4 simd_max ( const F64vec4 a,
const F64vec4 b 
)
friend
1485  { return _mm256_max_pd(a,b); }
__m256d __cdecl _mm256_max_pd(__m256d, __m256d)
F64vec4 simd_min ( const F64vec4 a,
const F64vec4 b 
)
friend
1483  { return _mm256_min_pd(a,b); }
__m256d __cdecl _mm256_min_pd(__m256d, __m256d)
F64vec4 sqrt ( const F64vec4 a)
friend
1457 { return _mm256_sqrt_pd(a); }
__m256d __cdecl _mm256_sqrt_pd(__m256d)

Member Data Documentation

__m256d F64vec4::vec
protected

The documentation for this class was generated from the following file: