walberla::simd::avx Namespace Reference

Typedefs

typedef __m256d double4_t
 

Functions

const char * usedInstructionSet ()
 
double4_t make_double4 (double d, double c, double b, double a)
 
double4_t make_double4_r (double a, double b, double c, double d)
 
double4_t make_double4 (double a)
 
double4_t make_zero ()
 
double4_t load_aligned (double const *mem_addr)
 
double4_t load_unaligned (double const *mem_addr)
 
void loadNeighbors (const double *p, double4_t &r_left, double4_t &r_center, double4_t &r_right)
 
void store_aligned (double *mem_addr, double4_t a)
 
double getComponent (const double4_t &v, int i)
 
double getComponent (const double4_t &v, unsigned long i)
 
bool getBoolComponent (const double4_t &v, int i)
 
bool getBoolComponent (const double4_t &v, unsigned long i)
 
double4_t hadd (double4_t a, double4_t b)
 
double4_t horizontalSum (double4_t a)
 
double4_t exchangeLowerUpperHalf (double4_t a)
 
void extract (double4_t in, double4_t &d, double4_t &c, double4_t &b, double4_t &a)
 
double4_t rotateRight (double4_t a)
 
double4_t rotateLeft (double4_t a)
 
double4_t compareEQ (double4_t a, double4_t b)
 
double4_t compareNEQ (double4_t a, double4_t b)
 
double4_t compareGE (double4_t a, double4_t b)
 
double4_t compareLE (double4_t a, double4_t b)
 
double4_t logicalAND (double4_t a, double4_t b)
 
double4_t logicalOR (double4_t a, double4_t b)
 
int movemask (double4_t m)
 
double4_t blendv (double4_t a, double4_t b, double4_t mask)
 
template<int mask>
double4_t blend (double4_t a, double4_t b)
 
double4_t sqrt (double4_t a)
 
template<unsigned int numIter = 3>
double4_t invSqrt (double4_t y)
 

Typedef Documentation

Function Documentation

template<int mask>
double4_t walberla::simd::avx::blend ( double4_t  a,
double4_t  b 
)
inline
double4_t walberla::simd::avx::blendv ( double4_t  a,
double4_t  b,
double4_t  mask 
)
inline
double4_t walberla::simd::avx::compareEQ ( double4_t  a,
double4_t  b 
)
inline
double4_t walberla::simd::avx::compareGE ( double4_t  a,
double4_t  b 
)
inline
double4_t walberla::simd::avx::compareLE ( double4_t  a,
double4_t  b 
)
inline
double4_t walberla::simd::avx::compareNEQ ( double4_t  a,
double4_t  b 
)
inline
double4_t walberla::simd::avx::exchangeLowerUpperHalf ( double4_t  a)
inline
void walberla::simd::avx::extract ( double4_t  in,
double4_t d,
double4_t c,
double4_t b,
double4_t a 
)
inline
bool walberla::simd::avx::getBoolComponent ( const double4_t v,
int  i 
)
inline
bool walberla::simd::avx::getBoolComponent ( const double4_t v,
unsigned long  i 
)
inline
double walberla::simd::avx::getComponent ( const double4_t v,
int  i 
)
inline
double walberla::simd::avx::getComponent ( const double4_t v,
unsigned long  i 
)
inline
double4_t walberla::simd::avx::hadd ( double4_t  a,
double4_t  b 
)
inline
double4_t walberla::simd::avx::horizontalSum ( double4_t  a)
inline
template<unsigned int numIter = 3>
double4_t walberla::simd::avx::invSqrt ( double4_t  y)
inline
double4_t walberla::simd::avx::load_aligned ( double const *  mem_addr)
inline
double4_t walberla::simd::avx::load_unaligned ( double const *  mem_addr)
inline
void walberla::simd::avx::loadNeighbors ( const double *  p,
double4_t r_left,
double4_t r_center,
double4_t r_right 
)
inline
double4_t walberla::simd::avx::logicalAND ( double4_t  a,
double4_t  b 
)
inline
double4_t walberla::simd::avx::logicalOR ( double4_t  a,
double4_t  b 
)
inline
double4_t walberla::simd::avx::make_double4 ( double  d,
double  c,
double  b,
double  a 
)
inline
double4_t walberla::simd::avx::make_double4 ( double  a)
inline
double4_t walberla::simd::avx::make_double4_r ( double  a,
double  b,
double  c,
double  d 
)
inline
double4_t walberla::simd::avx::make_zero ( )
inline
int walberla::simd::avx::movemask ( double4_t  m)
inline
double4_t walberla::simd::avx::rotateLeft ( double4_t  a)
inline
double4_t walberla::simd::avx::rotateRight ( double4_t  a)
inline
double4_t walberla::simd::avx::sqrt ( double4_t  a)
inline
void walberla::simd::avx::store_aligned ( double *  mem_addr,
double4_t  a 
)
inline
const char* walberla::simd::avx::usedInstructionSet ( )
inline