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)
 
 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
1408 {}
F64vec4::F64vec4 ( __m256d  m)
inline
1411 { vec = m; }
__m128d m
Definition: dvec.h:69
__m256d vec
Definition: dvec.h:1403
F64vec4::F64vec4 ( double  _D3,
double  _D2,
double  _D1,
double  _D0 
)
inline
1415  {
1416  vec = _mm256_set_pd(_D3,_D2,_D1,_D0);
1417  }
__m256d __cdecl _mm256_set_pd(double, double, double, double)
__m256d vec
Definition: dvec.h:1403
F64vec4::F64vec4 ( double  _D)
inlineexplicit
1420 { vec = _mm256_set1_pd(_D); }
__m256d vec
Definition: dvec.h:1403
__m256d __cdecl _mm256_set1_pd(double)

Member Function Documentation

F64vec4::operator __m256d ( ) const
inline
1423 { return vec; }
__m256d vec
Definition: dvec.h:1403
F64vec4& F64vec4::operator&= ( const F64vec4 _A)
inline
1440 { return *this = _mm256_and_pd(vec,_A); }
__m256d __cdecl _mm256_and_pd(__m256d, __m256d)
__m256d vec
Definition: dvec.h:1403
F64vec4& F64vec4::operator*= ( const F64vec4 _A)
inline
1438 { return *this = _mm256_mul_pd(vec,_A); }
__m256d __cdecl _mm256_mul_pd(__m256d, __m256d)
__m256d vec
Definition: dvec.h:1403
F64vec4& F64vec4::operator+= ( const F64vec4 _A)
inline
1436 { return *this = _mm256_add_pd(vec,_A); }
__m256d vec
Definition: dvec.h:1403
__m256d __cdecl _mm256_add_pd(__m256d, __m256d)
F64vec4& F64vec4::operator-= ( const F64vec4 _A)
inline
1437 { return *this = _mm256_sub_pd(vec,_A); }
__m256d __cdecl _mm256_sub_pd(__m256d, __m256d)
__m256d vec
Definition: dvec.h:1403
F64vec4& F64vec4::operator/= ( const F64vec4 _A)
inline
1439 { return *this = _mm256_div_pd(vec,_A); }
__m256d __cdecl _mm256_div_pd(__m256d, __m256d)
__m256d vec
Definition: dvec.h:1403
const double& F64vec4::operator[] ( int  _I) const
inline
1514  {
1515  /* Assert enabled only during debug /DDEBUG */
1516  _VEC_ASSERT((0 <= _I) && (_I <= 3));
1517  double *_Dp = (double*)&vec;
1518  return *(_Dp+ _I);
1519  }
#define _VEC_ASSERT(_Expression)
Definition: dvec.h:53
__m256d vec
Definition: dvec.h:1403
double& F64vec4::operator[] ( int  _I)
inline
1522  {
1523  /* Assert enabled only during debug /DDEBUG */
1524  _VEC_ASSERT((0 <= _I) && (_I <= 3));
1525  double *_Dp = (double*)&vec;
1526  return *(_Dp+ _I);
1527  }
#define _VEC_ASSERT(_Expression)
Definition: dvec.h:53
__m256d vec
Definition: dvec.h:1403
F64vec4& F64vec4::operator^= ( const F64vec4 _A)
inline
1442 { return *this = _mm256_xor_pd(vec,_A); }
__m256d vec
Definition: dvec.h:1403
__m256d __cdecl _mm256_xor_pd(__m256d, __m256d)
F64vec4& F64vec4::operator|= ( const F64vec4 _A)
inline
1441 { return *this = _mm256_or_pd(vec,_A); }
__m256d vec
Definition: dvec.h:1403
__m256d __cdecl _mm256_or_pd(__m256d, __m256d)

Friends And Related Function Documentation

F64vec4 abs ( const F64vec4 _A)
friend
1487  {
1488  static const union
1489  {
1490  int i[8];
1491  __m256d m;
1492  } __f64vec4_abs_mask = { -1, 0x7fffffff, -1, 0x7fffffff,
1493  -1, 0x7fffffff, -1, 0x7fffffff};
1494  return _mm256_and_pd(_A, __f64vec4_abs_mask.m);
1495  }
__m256d __cdecl _mm256_and_pd(__m256d, __m256d)
__m256d
Definition: immintrin.h:43
__m128d m
Definition: dvec.h:69
int i[4]
Definition: dvec.h:68
double add_horizontal ( const F64vec4 _A)
friend
1446  {
1447  F64vec4 _Temp = _mm256_add_pd(_A, _mm256_permute_pd(_A,0x05));
1449  }
Definition: dvec.h:1400
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
1452 { return _mm256_andnot_pd(_A,_B); }
__m256d __cdecl _mm256_andnot_pd(__m256d, __m256d)
F64vec4 cmp_eq ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1459  { return _mm256_cmp_pd(_A, _B, _CMP_EQ_OQ); }
#define _CMP_EQ_OQ
Definition: immintrin.h:60
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
F64vec4 cmp_ge ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1467  { return _mm256_cmp_pd(_A, _B, _CMP_GE_OS); }
#define _CMP_GE_OS
Definition: immintrin.h:75
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
F64vec4 cmp_gt ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1465  { return _mm256_cmp_pd(_A, _B, _CMP_GT_OS); }
#define _CMP_GT_OS
Definition: immintrin.h:76
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
F64vec4 cmp_le ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1463  { 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:62
F64vec4 cmp_lt ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1461  { return _mm256_cmp_pd(_A, _B, _CMP_LT_OS); }
#define _CMP_LT_OS
Definition: immintrin.h:61
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
F64vec4 cmp_neq ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1469  { return _mm256_cmp_pd(_A, _B, _CMP_NEQ_UQ); }
#define _CMP_NEQ_UQ
Definition: immintrin.h:64
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
F64vec4 cmp_nge ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1477  { return _mm256_cmp_pd(_A, _B, _CMP_NGE_US); }
#define _CMP_NGE_US
Definition: immintrin.h:70
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
F64vec4 cmp_ngt ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1475  { return _mm256_cmp_pd(_A, _B, _CMP_NGT_US); }
#define _CMP_NGT_US
Definition: immintrin.h:72
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
F64vec4 cmp_nle ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1473  { return _mm256_cmp_pd(_A, _B, _CMP_NLE_US); }
#define _CMP_NLE_US
Definition: immintrin.h:66
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
F64vec4 cmp_nlt ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1471  { return _mm256_cmp_pd(_A, _B, _CMP_NLT_US); }
#define _CMP_NLT_US
Definition: immintrin.h:65
__m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int)
F64vec4 operator& ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1426 { return _mm256_and_pd(_A,_B); }
__m256d __cdecl _mm256_and_pd(__m256d, __m256d)
F64vec4 operator* ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1433 { return _mm256_mul_pd(_A,_B); }
__m256d __cdecl _mm256_mul_pd(__m256d, __m256d)
F64vec4 operator+ ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1431 { return _mm256_add_pd(_A,_B); }
__m256d __cdecl _mm256_add_pd(__m256d, __m256d)
F64vec4 operator- ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1432 { return _mm256_sub_pd(_A,_B); }
__m256d __cdecl _mm256_sub_pd(__m256d, __m256d)
F64vec4 operator/ ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1434 { return _mm256_div_pd(_A,_B); }
__m256d __cdecl _mm256_div_pd(__m256d, __m256d)
F64vec4 operator^ ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1428 { return _mm256_xor_pd(_A,_B); }
__m256d __cdecl _mm256_xor_pd(__m256d, __m256d)
F64vec4 operator| ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1427 { return _mm256_or_pd(_A,_B); }
__m256d __cdecl _mm256_or_pd(__m256d, __m256d)
F64vec4 simd_max ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1483  { return _mm256_max_pd(_A,_B); }
__m256d __cdecl _mm256_max_pd(__m256d, __m256d)
F64vec4 simd_min ( const F64vec4 _A,
const F64vec4 _B 
)
friend
1481  { return _mm256_min_pd(_A,_B); }
__m256d __cdecl _mm256_min_pd(__m256d, __m256d)
F64vec4 sqrt ( const F64vec4 _A)
friend
1455 { 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: