ReactOS  0.4.14-dev-991-g696cdc6
F64vec2 Class Reference

#include <dvec.h>

Collaboration diagram for F64vec2:

Public Member Functions

 F64vec2 ()
 
 F64vec2 (__m128d m)
 
 F64vec2 (double d1, double d0)
 
EXPLICIT F64vec2 (double d)
 
 operator __m128d () const
 
F64vec2operator+= (F64vec2 &a)
 
F64vec2operator -= (F64vec2 &a)
 
F64vec2operator *= (F64vec2 &a)
 
F64vec2operator/= (F64vec2 &a)
 
F64vec2operator &= (F64vec2 &a)
 
F64vec2operator|= (F64vec2 &a)
 
F64vec2operator ^= (F64vec2 &a)
 
 F64vec2_COMP (eq) F64vec2_COMP(lt) F64vec2_COMP(le) F64vec2_COMP(gt) F64vec2_COMP(ge) F64vec2_COMP(ngt) F64vec2_COMP(nge) F64vec2_COMP(neq) F64vec2_COMP(nlt) F64vec2_COMP(nle) friend F64vec2 simd_min(const F64vec2 &a
 
 F64vec2_COMI (eq) F64vec2_COMI(lt) F64vec2_COMI(le) F64vec2_COMI(gt) F64vec2_COMI(ge) F64vec2_COMI(neq) F64vec2_UCOMI(eq) F64vec2_UCOMI(lt) F64vec2_UCOMI(le) F64vec2_UCOMI(gt) F64vec2_UCOMI(ge) F64vec2_UCOMI(neq) const double &operator[](int i) const
 
doubleoperator[] (int i)
 

Public Attributes

const F64vec2b { return _mm_min_pd(a,b)
 

Protected Attributes

__m128d vec
 

Friends

F64vec2 operator & (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 operator| (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 operator ^ (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 operator+ (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 operator - (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 operator * (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 operator/ (const F64vec2 &a, const F64vec2 &b)
 
double add_horizontal (F64vec2 &a)
 
F64vec2 andnot (const F64vec2 &a, const F64vec2 &b)
 
F64vec2 sqrt (const F64vec2 &a)
 
F64vec2 simd_max (const F64vec2 &a, const F64vec2 &b)
 

Detailed Description

Definition at line 717 of file dvec.h.

Constructor & Destructor Documentation

◆ F64vec2() [1/4]

F64vec2::F64vec2 ( )
inline

Definition at line 723 of file dvec.h.

723 {}

◆ F64vec2() [2/4]

F64vec2::F64vec2 ( __m128d  m)
inline

Definition at line 725 of file dvec.h.

725 { vec = m;}
const GLfloat * m
Definition: glext.h:10848
__m128d vec
Definition: dvec.h:720

◆ F64vec2() [3/4]

F64vec2::F64vec2 ( double  d1,
double  d0 
)
inline

Definition at line 727 of file dvec.h.

727 { vec= _mm_set_pd(d1,d0); }
__m128d vec
Definition: dvec.h:720

◆ F64vec2() [4/4]

EXPLICIT F64vec2::F64vec2 ( double  d)
inline

Definition at line 729 of file dvec.h.

729 { vec = _mm_set1_pd(d); }
#define d
Definition: ke_i.h:81
__m128d vec
Definition: dvec.h:720

Member Function Documentation

◆ F64vec2_COMI()

F64vec2::F64vec2_COMI ( eq  ) const &
inline

Definition at line 777 of file dvec.h.

785  { return _mm_ucomi##op##_sd(a,b); }
787  F64vec2_UCOMI(lt)
788  F64vec2_UCOMI(le)
789  F64vec2_UCOMI(gt)
790  F64vec2_UCOMI(ge)
791  F64vec2_UCOMI(neq)
792 #undef F64vec2_UCOMI
793 
794 #if defined(_ENABLE_VEC_DEBUG)
795 
796  friend std::ostream & operator<<(std::ostream & os,const F64vec2 &a) {
797  double *dp = (double*)&a;
798  os << " [1]:" << *(dp+1)
799  << " [0]:" << *dp;
800  return os;
801  }
802 #endif
803 
804  const double &operator[](int i) const {
805  assert((0 <= i) && (i <= 1));
806  double *dp = (double*)&vec;
807  return *(dp+i);
808  }
basic_ostream< char, char_traits< char > > ostream
Definition: _iosfwd.h:121
std::ostream & operator<<(std::ostream &out, const XMLError &err)
Definition: xmlstorage.cpp:673
#define assert(x)
Definition: debug.h:53
#define F64vec2_UCOMI(op)
#define eq(received, expected, label, type)
Definition: locale.c:144
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
__m128d vec
Definition: dvec.h:720
double & operator[](int i)
Definition: dvec.h:810
Definition: dvec.h:717
UINT op
Definition: effect.c:223
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

◆ F64vec2_COMP()

F64vec2::F64vec2_COMP ( eq  ) const &

◆ operator &=()

F64vec2& F64vec2::operator &= ( F64vec2 a)
inline

Definition at line 746 of file dvec.h.

746 { return *this = _mm_and_pd(vec,a); }
__m128d vec
Definition: dvec.h:720
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

◆ operator *=()

F64vec2& F64vec2::operator *= ( F64vec2 a)
inline

Definition at line 744 of file dvec.h.

744 { return *this = _mm_mul_pd(vec,a); }
__m128d vec
Definition: dvec.h:720
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

◆ operator -=()

F64vec2& F64vec2::operator -= ( F64vec2 a)
inline

Definition at line 743 of file dvec.h.

743 { return *this = _mm_sub_pd(vec,a); }
__m128d vec
Definition: dvec.h:720
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

◆ operator ^=()

F64vec2& F64vec2::operator ^= ( F64vec2 a)
inline

Definition at line 748 of file dvec.h.

748 { return *this = _mm_xor_pd(vec,a); }
__m128d vec
Definition: dvec.h:720
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

◆ operator __m128d()

F64vec2::operator __m128d ( ) const
inline

Definition at line 731 of file dvec.h.

731 { return vec; }
__m128d vec
Definition: dvec.h:720

◆ operator+=()

F64vec2& F64vec2::operator+= ( F64vec2 a)
inline

Definition at line 742 of file dvec.h.

742 { return *this = _mm_add_pd(vec,a); }
__m128d vec
Definition: dvec.h:720
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

◆ operator/=()

F64vec2& F64vec2::operator/= ( F64vec2 a)
inline

Definition at line 745 of file dvec.h.

745 { return *this = _mm_div_pd(vec,a); }
__m128d vec
Definition: dvec.h:720
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

◆ operator[]()

double& F64vec2::operator[] ( int  i)
inline

Definition at line 810 of file dvec.h.

810  {
811  assert((0 <= i) && (i <= 1));
812  double *dp = (double*)&vec;
813  return *(dp+i);
814  }
#define assert(x)
Definition: debug.h:53
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
__m128d vec
Definition: dvec.h:720

◆ operator|=()

F64vec2& F64vec2::operator|= ( F64vec2 a)
inline

Definition at line 747 of file dvec.h.

747 { return *this = _mm_or_pd(vec,a); }
__m128d vec
Definition: dvec.h:720
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

Friends And Related Function Documentation

◆ add_horizontal

double add_horizontal ( F64vec2 a)
friend

Definition at line 750 of file dvec.h.

751  {
752  F64vec2 ftemp = _mm_add_sd(a,_mm_shuffle_pd(a,a,1));
753  return ftemp[0];
754  }
Definition: dvec.h:717
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

◆ andnot

F64vec2 andnot ( const F64vec2 a,
const F64vec2 b 
)
friend

Definition at line 756 of file dvec.h.

756 { return _mm_andnot_pd(a,b); }
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

◆ operator &

F64vec2 operator & ( const F64vec2 a,
const F64vec2 b 
)
friend

Definition at line 733 of file dvec.h.

733 { return _mm_and_pd(a,b); }
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

◆ operator *

F64vec2 operator * ( const F64vec2 a,
const F64vec2 b 
)
friend

Definition at line 739 of file dvec.h.

739 { return _mm_mul_pd(a,b); }
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

◆ operator -

F64vec2 operator - ( const F64vec2 a,
const F64vec2 b 
)
friend

Definition at line 738 of file dvec.h.

738 { return _mm_sub_pd(a,b); }
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

◆ operator ^

F64vec2 operator ^ ( const F64vec2 a,
const F64vec2 b 
)
friend

Definition at line 735 of file dvec.h.

735 { return _mm_xor_pd(a,b); }
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

◆ operator+

F64vec2 operator+ ( const F64vec2 a,
const F64vec2 b 
)
friend

Definition at line 737 of file dvec.h.

737 { return _mm_add_pd(a,b); }
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

◆ operator/

F64vec2 operator/ ( const F64vec2 a,
const F64vec2 b 
)
friend

Definition at line 740 of file dvec.h.

740 { return _mm_div_pd(a,b); }
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

◆ operator|

F64vec2 operator| ( const F64vec2 a,
const F64vec2 b 
)
friend

Definition at line 734 of file dvec.h.

734 { return _mm_or_pd(a,b); }
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

◆ simd_max

F64vec2 simd_max ( const F64vec2 a,
const F64vec2 b 
)
friend

Definition at line 774 of file dvec.h.

774 { return _mm_max_pd(a,b); }
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

◆ sqrt

F64vec2 sqrt ( const F64vec2 a)
friend

Definition at line 758 of file dvec.h.

758 { return _mm_sqrt_pd(a); }
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

Member Data Documentation

◆ b

const F64vec2& F64vec2::b { return _mm_min_pd(a,b)

Definition at line 773 of file dvec.h.

◆ vec


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