MFEM  v4.6.0
Finite element discretization library
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
mfem::AutoSIMD< scalar_t, S, align_bytes_ > Struct Template Reference

#include <auto.hpp>

Collaboration diagram for mfem::AutoSIMD< scalar_t, S, align_bytes_ >:
[legend]

Public Types

typedef scalar_t scalar_type
 

Public Member Functions

 AutoSIMD ()=default
 
 AutoSIMD (const AutoSIMD &)=default
 
MFEM_ALWAYS_INLINE scalar_t & operator[] (int i)
 
MFEM_ALWAYS_INLINE const scalar_t & operator[] (int i) const
 
MFEM_ALWAYS_INLINE AutoSIMDoperator= (const AutoSIMD &v)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator= (const scalar_t &e)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator+= (const AutoSIMD &v)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator+= (const scalar_t &e)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator-= (const AutoSIMD &v)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator-= (const scalar_t &e)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator*= (const AutoSIMD &v)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator*= (const scalar_t &e)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator/= (const AutoSIMD &v)
 
MFEM_ALWAYS_INLINE AutoSIMDoperator/= (const scalar_t &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 scalar_t &e) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator- (const AutoSIMD &v) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator- (const scalar_t &e) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator* (const AutoSIMD &v) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator* (const scalar_t &e) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator/ (const AutoSIMD &v) const
 
MFEM_ALWAYS_INLINE AutoSIMD operator/ (const scalar_t &e) const
 
MFEM_ALWAYS_INLINE AutoSIMDfma (const AutoSIMD &v, const AutoSIMD &w)
 
MFEM_ALWAYS_INLINE AutoSIMDfma (const AutoSIMD &v, const scalar_t &e)
 
MFEM_ALWAYS_INLINE AutoSIMDfma (const scalar_t &e, const AutoSIMD &v)
 
MFEM_ALWAYS_INLINE AutoSIMDmul (const AutoSIMD &v, const AutoSIMD &w)
 
MFEM_ALWAYS_INLINE AutoSIMDmul (const AutoSIMD &v, const scalar_t &e)
 
MFEM_ALWAYS_INLINE AutoSIMDmul (const scalar_t &e, const AutoSIMD &v)
 

Public Attributes

scalar_t vec [size]
 

Static Public Attributes

static const int size = S
 
static const int align_bytes = align_bytes_
 

Detailed Description

template<typename scalar_t, int S, int align_bytes_>
struct mfem::AutoSIMD< scalar_t, S, align_bytes_ >

Definition at line 24 of file auto.hpp.

Member Typedef Documentation

◆ scalar_type

template<typename scalar_t, int S, int align_bytes_>
typedef scalar_t mfem::AutoSIMD< scalar_t, S, align_bytes_ >::scalar_type

Definition at line 26 of file auto.hpp.

Constructor & Destructor Documentation

◆ AutoSIMD() [1/2]

template<typename scalar_t, int S, int align_bytes_>
mfem::AutoSIMD< scalar_t, S, align_bytes_ >::AutoSIMD ( )
default

◆ AutoSIMD() [2/2]

template<typename scalar_t, int S, int align_bytes_>
mfem::AutoSIMD< scalar_t, S, align_bytes_ >::AutoSIMD ( const AutoSIMD< scalar_t, S, align_bytes_ > &  )
default

Member Function Documentation

◆ fma() [1/3]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< scalar_t, S, align_bytes_ >::fma ( const AutoSIMD< scalar_t, S, align_bytes_ > &  v,
const AutoSIMD< scalar_t, S, align_bytes_ > &  w 
)
inline

Definition at line 193 of file auto.hpp.

◆ fma() [2/3]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< scalar_t, S, align_bytes_ >::fma ( const AutoSIMD< scalar_t, S, align_bytes_ > &  v,
const scalar_t &  e 
)
inline

Definition at line 200 of file auto.hpp.

◆ fma() [3/3]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< scalar_t, S, align_bytes_ >::fma ( const scalar_t &  e,
const AutoSIMD< scalar_t, S, align_bytes_ > &  v 
)
inline

Definition at line 207 of file auto.hpp.

◆ mul() [1/3]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< scalar_t, S, align_bytes_ >::mul ( const AutoSIMD< scalar_t, S, align_bytes_ > &  v,
const AutoSIMD< scalar_t, S, align_bytes_ > &  w 
)
inline

Definition at line 214 of file auto.hpp.

◆ mul() [2/3]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< scalar_t, S, align_bytes_ >::mul ( const AutoSIMD< scalar_t, S, align_bytes_ > &  v,
const scalar_t &  e 
)
inline

Definition at line 221 of file auto.hpp.

◆ mul() [3/3]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< scalar_t, S, align_bytes_ >::mul ( const scalar_t &  e,
const AutoSIMD< scalar_t, S, align_bytes_ > &  v 
)
inline

Definition at line 228 of file auto.hpp.

◆ operator*() [1/2]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator* ( const AutoSIMD< scalar_t, S, align_bytes_ > &  v) const
inline

Definition at line 161 of file auto.hpp.

◆ operator*() [2/2]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator* ( const scalar_t &  e) const
inline

Definition at line 169 of file auto.hpp.

◆ operator*=() [1/2]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator*= ( const AutoSIMD< scalar_t, S, align_bytes_ > &  v)
inline

Definition at line 88 of file auto.hpp.

◆ operator*=() [2/2]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator*= ( const scalar_t &  e)
inline

Definition at line 95 of file auto.hpp.

◆ operator+() [1/3]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator+ ( ) const
inline

Definition at line 124 of file auto.hpp.

◆ operator+() [2/3]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator+ ( const AutoSIMD< scalar_t, S, align_bytes_ > &  v) const
inline

Definition at line 129 of file auto.hpp.

◆ operator+() [3/3]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator+ ( const scalar_t &  e) const
inline

Definition at line 137 of file auto.hpp.

◆ operator+=() [1/2]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator+= ( const AutoSIMD< scalar_t, S, align_bytes_ > &  v)
inline

Definition at line 60 of file auto.hpp.

◆ operator+=() [2/2]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator+= ( const scalar_t &  e)
inline

Definition at line 67 of file auto.hpp.

◆ operator-() [1/3]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator- ( ) const
inline

Definition at line 116 of file auto.hpp.

◆ operator-() [2/3]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator- ( const AutoSIMD< scalar_t, S, align_bytes_ > &  v) const
inline

Definition at line 145 of file auto.hpp.

◆ operator-() [3/3]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator- ( const scalar_t &  e) const
inline

Definition at line 153 of file auto.hpp.

◆ operator-=() [1/2]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator-= ( const AutoSIMD< scalar_t, S, align_bytes_ > &  v)
inline

Definition at line 74 of file auto.hpp.

◆ operator-=() [2/2]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator-= ( const scalar_t &  e)
inline

Definition at line 81 of file auto.hpp.

◆ operator/() [1/2]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator/ ( const AutoSIMD< scalar_t, S, align_bytes_ > &  v) const
inline

Definition at line 177 of file auto.hpp.

◆ operator/() [2/2]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator/ ( const scalar_t &  e) const
inline

Definition at line 185 of file auto.hpp.

◆ operator/=() [1/2]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator/= ( const AutoSIMD< scalar_t, S, align_bytes_ > &  v)
inline

Definition at line 102 of file auto.hpp.

◆ operator/=() [2/2]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator/= ( const scalar_t &  e)
inline

Definition at line 109 of file auto.hpp.

◆ operator=() [1/2]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator= ( const AutoSIMD< scalar_t, S, align_bytes_ > &  v)
inline

Definition at line 46 of file auto.hpp.

◆ operator=() [2/2]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE AutoSIMD& mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator= ( const scalar_t &  e)
inline

Definition at line 53 of file auto.hpp.

◆ operator[]() [1/2]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE scalar_t& mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator[] ( int  i)
inline

Definition at line 36 of file auto.hpp.

◆ operator[]() [2/2]

template<typename scalar_t, int S, int align_bytes_>
MFEM_ALWAYS_INLINE const scalar_t& mfem::AutoSIMD< scalar_t, S, align_bytes_ >::operator[] ( int  i) const
inline

Definition at line 41 of file auto.hpp.

Member Data Documentation

◆ align_bytes

template<typename scalar_t, int S, int align_bytes_>
const int mfem::AutoSIMD< scalar_t, S, align_bytes_ >::align_bytes = align_bytes_
static

Definition at line 28 of file auto.hpp.

◆ size

template<typename scalar_t, int S, int align_bytes_>
const int mfem::AutoSIMD< scalar_t, S, align_bytes_ >::size = S
static

Definition at line 27 of file auto.hpp.

◆ vec

template<typename scalar_t, int S, int align_bytes_>
scalar_t mfem::AutoSIMD< scalar_t, S, align_bytes_ >::vec[size]

Definition at line 30 of file auto.hpp.


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