ReactOS 0.4.15-dev-7918-g2a2556c
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;}
__m128d vec
Definition: dvec.h:720
const GLfloat * m
Definition: glext.h:10848

◆ 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 _mm_set_pd(double w, double x)
Definition: emmintrin.h:1038

◆ F64vec2() [4/4]

EXPLICIT F64vec2::F64vec2 ( double  d)
inline

Definition at line 729 of file dvec.h.

729{ vec = _mm_set1_pd(d); }
__m128d _mm_set1_pd(double w)
Definition: emmintrin.h:1033
#define d
Definition: ke_i.h:81

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< _CharT, _Traits > &_STLP_CALL operator<<(basic_ostream< _CharT, _Traits > &__os, const bitset< _Nb > &__x)
Definition: _bitset.c:219
Definition: dvec.h:718
double & operator[](int i)
Definition: dvec.h:810
UINT op
Definition: effect.c:236
#define assert(x)
Definition: debug.h:53
#define F64vec2_UCOMI(op)
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
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
#define eq(received, expected, label, type)
Definition: locale.c:144

◆ F64vec2_COMP()

F64vec2::F64vec2_COMP ( eq  ) const &

◆ operator __m128d()

F64vec2::operator __m128d ( ) const
inline

Definition at line 731 of file dvec.h.

731{ return vec; }

◆ operator&=()

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

Definition at line 746 of file dvec.h.

746{ return *this = _mm_and_pd(vec,a); }
__m128d _mm_and_pd(__m128d a, __m128d b)
Definition: emmintrin.h:642

◆ operator*=()

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

Definition at line 744 of file dvec.h.

744{ return *this = _mm_mul_pd(vec,a); }
__m128d _mm_mul_pd(__m128d a, __m128d b)
Definition: emmintrin.h:595

◆ operator+=()

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

Definition at line 742 of file dvec.h.

742{ return *this = _mm_add_pd(vec,a); }
__m128d _mm_add_pd(__m128d a, __m128d b)
Definition: emmintrin.h:573

◆ operator-=()

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

Definition at line 743 of file dvec.h.

743{ return *this = _mm_sub_pd(vec,a); }
__m128d _mm_sub_pd(__m128d a, __m128d b)
Definition: emmintrin.h:584

◆ operator/=()

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

Definition at line 745 of file dvec.h.

745{ return *this = _mm_div_pd(vec,a); }
__m128d _mm_div_pd(__m128d a, __m128d b)
Definition: emmintrin.h:606

◆ 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 }

◆ operator^=()

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

Definition at line 748 of file dvec.h.

748{ return *this = _mm_xor_pd(vec,a); }
__m128d _mm_xor_pd(__m128d a, __m128d b)
Definition: emmintrin.h:657

◆ operator|=()

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

Definition at line 747 of file dvec.h.

747{ return *this = _mm_or_pd(vec,a); }
__m128d _mm_or_pd(__m128d a, __m128d b)
Definition: emmintrin.h:652

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 }
__m128d _mm_add_sd(__m128d a, __m128d b)
Definition: emmintrin.h:567
#define _mm_shuffle_pd(a, b, i)
Definition: emmintrin.h:1901

◆ 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); }
__m128d _mm_andnot_pd(__m128d a, __m128d b)
Definition: emmintrin.h:647

◆ 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); }

◆ 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); }

◆ 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); }

◆ 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); }

◆ 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); }

◆ 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); }

◆ 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); }

◆ 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); }
__m128d _mm_max_pd(__m128d a, __m128d b)
Definition: emmintrin.h:637

◆ sqrt

F64vec2 sqrt ( const F64vec2 a)
friend

Definition at line 758 of file dvec.h.

758{ return _mm_sqrt_pd(a); }
__m128d _mm_sqrt_pd(__m128d a)
Definition: emmintrin.h:617

Member Data Documentation

◆ b

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

Definition at line 773 of file dvec.h.

◆ vec

__m128d F64vec2::vec
protected

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