LIBINT  2.1.0-stable
Public Types | Public Member Functions | Public Attributes | List of all members
libint2::simd::VectorSSEDouble Struct Reference

SIMD vector of 2 double-precision floating-point real numbers, operations on which use SSE2 instructions available on all recent x86 hardware. More...

#include <vector_x86.h>

Public Types

typedef double T
 

Public Member Functions

 VectorSSEDouble ()
 creates a vector of default-initialized values.
 
 VectorSSEDouble (T a)
 Initializes all elements to the same value. More...
 
 VectorSSEDouble (T(&a)[2])
 creates a vector of values initialized by an ordinary static-sized array
 
 VectorSSEDouble (T a0, T a1)
 creates a vector of values initialized by an ordinary static-sized array
 
 VectorSSEDouble (__m128d a)
 converts a 128-bit SSE double vector type to VectorSSEDouble
 
VectorSSEDoubleoperator= (T a)
 
VectorSSEDoubleoperator+= (VectorSSEDouble a)
 
VectorSSEDoubleoperator-= (VectorSSEDouble a)
 
VectorSSEDouble operator- () const
 
 operator double () const
 
 operator __m128d () const
 implicit conversion to SSE 128-bit "register"
 
void load (T const *a)
 loads a to this
 
void load_aligned (T const *a)
 loads a to this More...
 
void convert (T *a) const
 writes this to a
 
void convert_aligned (T *a) const
 writes this to a More...
 

Public Attributes

__m128d d
 

Detailed Description

SIMD vector of 2 double-precision floating-point real numbers, operations on which use SSE2 instructions available on all recent x86 hardware.

Constructor & Destructor Documentation

libint2::simd::VectorSSEDouble::VectorSSEDouble ( a)
inline

Initializes all elements to the same value.

Parameters
athe value to which all elements will be set

Member Function Documentation

void libint2::simd::VectorSSEDouble::convert_aligned ( T *  a) const
inline

writes this to a

Note
a must be aligned to 16 bytes

References libint2::fma_minus(), libint2::fma_plus(), and libint2::operator*().

void libint2::simd::VectorSSEDouble::load_aligned ( T const *  a)
inline

loads a to this

See also
load()
Note
a must be aligned to 16 bytes

Referenced by libint2::FmEval_Chebyshev3< Real >::eval(), and libint2::FmEval_Chebyshev7< Real >::eval().


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