MFEM  v4.5.1
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
mfem::AutoSIMD< double, 8, 64 > Struct Template Reference

#include <m512.hpp>

Collaboration diagram for mfem::AutoSIMD< double, 8, 64 >:
[legend]

Public Types

typedef double scalar_type
 
typedef double scalar_type
 

Public Member Functions

 AutoSIMD ()=default
 
 AutoSIMD (const AutoSIMD &)=default
 
MFEM_ALWAYS_INLINE double & operator[] (int i)
 
MFEM_ALWAYS_INLINE const double & operator[] (int i) const
 
MFEM_ALWAYS_INLINE AutoSIMDoperator= (const AutoSIMD &v)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator= (const double &e)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator+= (const AutoSIMD &v)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator+= (const double &e)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator-= (const AutoSIMD &v)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator-= (const double &e)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator*= (const AutoSIMD &v)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator*= (const double &e)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator/= (const AutoSIMD &v)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator/= (const double &e)
 
MFEM_ALWAYS_INLINE AutoSIMD operator- () const
 
MFEM_ALWAYS_INLINE AutoSIMD operator+ () const
 
MFEM_ALWAYS_INLINE AutoSIMD operator+ (const AutoSIMD &v) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator+ (const double &e) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator- (const AutoSIMD &v) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator- (const double &e) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator* (const AutoSIMD &v) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator* (const double &e) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator/ (const AutoSIMD &v) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator/ (const double &e) const
 
MFEM_ALWAYS_INLINE AutoSIMDfma (const AutoSIMD &v, const AutoSIMD &w)
 
MFEM_ALWAYS_INLINE AutoSIMDfma (const AutoSIMD &v, const double &e)
 
MFEM_ALWAYS_INLINE AutoSIMDfma (const double &e, const AutoSIMD &v)
 
MFEM_ALWAYS_INLINE AutoSIMDmul (const AutoSIMD &v, const AutoSIMD &w)
 
MFEM_ALWAYS_INLINE AutoSIMDmul (const AutoSIMD &v, const double &e)
 
MFEM_ALWAYS_INLINE AutoSIMDmul (const double &e, const AutoSIMD &v)
 
 AutoSIMD ()=default
 
 AutoSIMD (const AutoSIMD &)=default
 
MFEM_ALWAYS_INLINE double & operator[] (int i)
 
MFEM_ALWAYS_INLINE const double & operator[] (int i) const
 
MFEM_ALWAYS_INLINE AutoSIMDoperator= (const AutoSIMD &v)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator= (const double &e)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator+= (const AutoSIMD &v)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator+= (const double &e)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator-= (const AutoSIMD &v)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator-= (const double &e)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator*= (const AutoSIMD &v)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator*= (const double &e)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator/= (const AutoSIMD &v)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator/= (const double &e)
 
MFEM_ALWAYS_INLINE AutoSIMD operator- () const
 
MFEM_ALWAYS_INLINE AutoSIMD operator+ () const
 
MFEM_ALWAYS_INLINE AutoSIMD operator+ (const AutoSIMD &v) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator+ (const double &e) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator- (const AutoSIMD &v) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator- (const double &e) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator* (const AutoSIMD &v) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator* (const double &e) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator/ (const AutoSIMD &v) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator/ (const double &e) const
 
MFEM_ALWAYS_INLINE AutoSIMDfma (const AutoSIMD &v, const AutoSIMD &w)
 
MFEM_ALWAYS_INLINE AutoSIMDfma (const AutoSIMD &v, const double &e)
 
MFEM_ALWAYS_INLINE AutoSIMDfma (const double &e, const AutoSIMD &v)
 
MFEM_ALWAYS_INLINE AutoSIMDmul (const AutoSIMD &v, const AutoSIMD &w)
 
MFEM_ALWAYS_INLINE AutoSIMDmul (const AutoSIMD &v, const double &e)
 
MFEM_ALWAYS_INLINE AutoSIMDmul (const double &e, const AutoSIMD &v)
 

Public Attributes

union mfem::AutoSIMD< double, 8, 64 >:: { ... }  
 
__m512d m512d
 
double vec [size]
 

Static Public Attributes

static constexpr int size = 8
 
static constexpr int align_bytes = 64
 

Detailed Description

template<>
struct mfem::AutoSIMD< double, 8, 64 >

Definition at line 30 of file m512.hpp.

Member Typedef Documentation

typedef double mfem::AutoSIMD< double, 8, 64 >::scalar_type

Definition at line 30 of file sve.hpp.

typedef double mfem::AutoSIMD< double, 8, 64 >::scalar_type

Definition at line 32 of file m512.hpp.

Constructor & Destructor Documentation

mfem::AutoSIMD< double, 8, 64 >::AutoSIMD ( )
default
mfem::AutoSIMD< double, 8, 64 >::AutoSIMD ( const AutoSIMD< double, 8, 64 > &  )
default
mfem::AutoSIMD< double, 8, 64 >::AutoSIMD ( )
default
mfem::AutoSIMD< double, 8, 64 >::AutoSIMD ( const AutoSIMD< double, 8, 64 > &  )
default

Member Function Documentation

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::fma ( const AutoSIMD< double, 8, 64 > &  v,
const AutoSIMD< double, 8, 64 > &  w 
)
inline

Definition at line 188 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::fma ( const AutoSIMD< double, 8, 64 > &  v,
const double &  e 
)
inline

Definition at line 194 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::fma ( const double &  e,
const AutoSIMD< double, 8, 64 > &  v 
)
inline

Definition at line 200 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::fma ( const AutoSIMD< double, 8, 64 > &  v,
const AutoSIMD< double, 8, 64 > &  w 
)
inline

Definition at line 203 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::fma ( const AutoSIMD< double, 8, 64 > &  v,
const double &  e 
)
inline

Definition at line 212 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::fma ( const double &  e,
const AutoSIMD< double, 8, 64 > &  v 
)
inline

Definition at line 220 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::mul ( const AutoSIMD< double, 8, 64 > &  v,
const AutoSIMD< double, 8, 64 > &  w 
)
inline

Definition at line 206 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::mul ( const AutoSIMD< double, 8, 64 > &  v,
const double &  e 
)
inline

Definition at line 212 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::mul ( const double &  e,
const AutoSIMD< double, 8, 64 > &  v 
)
inline

Definition at line 218 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::mul ( const AutoSIMD< double, 8, 64 > &  v,
const AutoSIMD< double, 8, 64 > &  w 
)
inline

Definition at line 228 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::mul ( const AutoSIMD< double, 8, 64 > &  v,
const double &  e 
)
inline

Definition at line 236 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::mul ( const double &  e,
const AutoSIMD< double, 8, 64 > &  v 
)
inline

Definition at line 243 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator* ( const AutoSIMD< double, 8, 64 > &  v) const
inline

Definition at line 160 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator* ( const double &  e) const
inline

Definition at line 167 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator* ( const AutoSIMD< double, 8, 64 > &  v) const
inline

Definition at line 169 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator* ( const double &  e) const
inline

Definition at line 178 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator*= ( const AutoSIMD< double, 8, 64 > &  v)
inline

Definition at line 92 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator*= ( const AutoSIMD< double, 8, 64 > &  v)
inline

Definition at line 92 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator*= ( const double &  e)
inline

Definition at line 98 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator*= ( const double &  e)
inline

Definition at line 100 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator+ ( ) const
inline

Definition at line 127 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator+ ( ) const
inline

Definition at line 130 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator+ ( const AutoSIMD< double, 8, 64 > &  v) const
inline

Definition at line 132 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator+ ( const AutoSIMD< double, 8, 64 > &  v) const
inline

Definition at line 135 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator+ ( const double &  e) const
inline

Definition at line 139 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator+ ( const double &  e) const
inline

Definition at line 144 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator+= ( const AutoSIMD< double, 8, 64 > &  v)
inline

Definition at line 62 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator+= ( const AutoSIMD< double, 8, 64 > &  v)
inline

Definition at line 68 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator+= ( const double &  e)
inline

Definition at line 70 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator+= ( const double &  e)
inline

Definition at line 74 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator- ( ) const
inline

Definition at line 116 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator- ( ) const
inline

Definition at line 122 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator- ( const AutoSIMD< double, 8, 64 > &  v) const
inline

Definition at line 146 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator- ( const AutoSIMD< double, 8, 64 > &  v) const
inline

Definition at line 152 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator- ( const double &  e) const
inline

Definition at line 153 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator- ( const double &  e) const
inline

Definition at line 161 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator-= ( const AutoSIMD< double, 8, 64 > &  v)
inline

Definition at line 77 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator-= ( const AutoSIMD< double, 8, 64 > &  v)
inline

Definition at line 80 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator-= ( const double &  e)
inline

Definition at line 85 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator-= ( const double &  e)
inline

Definition at line 86 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator/ ( const AutoSIMD< double, 8, 64 > &  v) const
inline

Definition at line 174 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator/ ( const double &  e) const
inline

Definition at line 181 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator/ ( const AutoSIMD< double, 8, 64 > &  v) const
inline

Definition at line 186 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< double, 8, 64 >::operator/ ( const double &  e) const
inline

Definition at line 195 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator/= ( const AutoSIMD< double, 8, 64 > &  v)
inline

Definition at line 104 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator/= ( const AutoSIMD< double, 8, 64 > &  v)
inline

Definition at line 107 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator/= ( const double &  e)
inline

Definition at line 110 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator/= ( const double &  e)
inline

Definition at line 115 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator= ( const AutoSIMD< double, 8, 64 > &  v)
inline

Definition at line 50 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator= ( const AutoSIMD< double, 8, 64 > &  v)
inline

Definition at line 56 of file m512.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator= ( const double &  e)
inline

Definition at line 56 of file sve.hpp.

MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< double, 8, 64 >::operator= ( const double &  e)
inline

Definition at line 62 of file m512.hpp.

MFEM_ALWAYS_INLINE double& mfem::AutoSIMD< double, 8, 64 >::operator[] ( int  i)
inline

Definition at line 40 of file sve.hpp.

MFEM_ALWAYS_INLINE const double& mfem::AutoSIMD< double, 8, 64 >::operator[] ( int  i) const
inline

Definition at line 45 of file sve.hpp.

MFEM_ALWAYS_INLINE double& mfem::AutoSIMD< double, 8, 64 >::operator[] ( int  i)
inline

Definition at line 46 of file m512.hpp.

MFEM_ALWAYS_INLINE const double& mfem::AutoSIMD< double, 8, 64 >::operator[] ( int  i) const
inline

Definition at line 51 of file m512.hpp.

Member Data Documentation

union { ... }
static constexpr int mfem::AutoSIMD< double, 8, 64 >::align_bytes = 64
static

Definition at line 34 of file m512.hpp.

__m512d mfem::AutoSIMD< double, 8, 64 >::m512d

Definition at line 38 of file m512.hpp.

static constexpr int mfem::AutoSIMD< double, 8, 64 >::size = 8
static

Definition at line 33 of file m512.hpp.

double mfem::AutoSIMD< double, 8, 64 >::vec

Definition at line 39 of file m512.hpp.


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