walberla::simd::qpx Namespace Reference

Classes

struct  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 (const double *mem_addr)
 
void store_aligned (double *mem_addr, double4_t a)
 
double4_t load_unaligned (const double *mem_addr)
 
void loadNeighbors (const double *mem_addr, double4_t &r_left, double4_t &r_center, double4_t &r_right)
 
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 a)
 
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>
double4_t invSqrt (double4_t y)
 
double4_t operator+ (const double4_t &a, const double4_t &b)
 
double4_t operator- (const double4_t &a, const double4_t &b)
 
double4_t operator* (const double4_t &a, const double4_t &b)
 
double4_t operator/ (const double4_t &a, const double4_t &b)
 

Function Documentation

◆ blend()

template<int mask>
double4_t walberla::simd::qpx::blend ( double4_t  a,
double4_t  b 
)
inline

◆ blendv()

double4_t walberla::simd::qpx::blendv ( double4_t  a,
double4_t  b,
double4_t  mask 
)
inline

◆ compareEQ()

double4_t walberla::simd::qpx::compareEQ ( double4_t  a,
double4_t  b 
)
inline

◆ compareGE()

double4_t walberla::simd::qpx::compareGE ( double4_t  a,
double4_t  b 
)
inline

◆ compareLE()

double4_t walberla::simd::qpx::compareLE ( double4_t  a,
double4_t  b 
)
inline

◆ compareNEQ()

double4_t walberla::simd::qpx::compareNEQ ( double4_t  a,
double4_t  b 
)
inline

◆ exchangeLowerUpperHalf()

double4_t walberla::simd::qpx::exchangeLowerUpperHalf ( double4_t  a)
inline

◆ extract()

void walberla::simd::qpx::extract ( double4_t  in,
double4_t d,
double4_t c,
double4_t b,
double4_t a 
)
inline

◆ getBoolComponent() [1/2]

bool walberla::simd::qpx::getBoolComponent ( const double4_t v,
int  i 
)
inline

◆ getBoolComponent() [2/2]

bool walberla::simd::qpx::getBoolComponent ( const double4_t v,
unsigned long  i 
)
inline

◆ getComponent() [1/2]

double walberla::simd::qpx::getComponent ( const double4_t v,
int  i 
)
inline

◆ getComponent() [2/2]

double walberla::simd::qpx::getComponent ( const double4_t v,
unsigned long  i 
)
inline

◆ hadd()

double4_t walberla::simd::qpx::hadd ( double4_t  a,
double4_t  b 
)
inline

◆ horizontalSum()

double4_t walberla::simd::qpx::horizontalSum ( double4_t  a)
inline

◆ invSqrt()

template<unsigned int numIter>
double4_t walberla::simd::qpx::invSqrt ( double4_t  y)
inline

◆ load_aligned()

double4_t walberla::simd::qpx::load_aligned ( const double *  mem_addr)
inline

◆ load_unaligned()

double4_t walberla::simd::qpx::load_unaligned ( const double *  mem_addr)
inline

◆ loadNeighbors()

void walberla::simd::qpx::loadNeighbors ( const double *  mem_addr,
double4_t r_left,
double4_t r_center,
double4_t r_right 
)
inline

◆ logicalAND()

double4_t walberla::simd::qpx::logicalAND ( double4_t  a,
double4_t  b 
)
inline

◆ logicalOR()

double4_t walberla::simd::qpx::logicalOR ( double4_t  a,
double4_t  b 
)
inline

◆ make_double4() [1/2]

double4_t walberla::simd::qpx::make_double4 ( double  a)
inline

◆ make_double4() [2/2]

double4_t walberla::simd::qpx::make_double4 ( double  d,
double  c,
double  b,
double  a 
)
inline

◆ make_double4_r()

double4_t walberla::simd::qpx::make_double4_r ( double  a,
double  b,
double  c,
double  d 
)
inline

◆ make_zero()

double4_t walberla::simd::qpx::make_zero ( )
inline

◆ movemask()

int walberla::simd::qpx::movemask ( double4_t  a)
inline

◆ operator*()

double4_t walberla::simd::qpx::operator* ( const double4_t a,
const double4_t b 
)
inline

◆ operator+()

double4_t walberla::simd::qpx::operator+ ( const double4_t a,
const double4_t b 
)
inline

◆ operator-()

double4_t walberla::simd::qpx::operator- ( const double4_t a,
const double4_t b 
)
inline

◆ operator/()

double4_t walberla::simd::qpx::operator/ ( const double4_t a,
const double4_t b 
)
inline

◆ rotateLeft()

double4_t walberla::simd::qpx::rotateLeft ( double4_t  a)
inline

◆ rotateRight()

double4_t walberla::simd::qpx::rotateRight ( double4_t  a)
inline

◆ sqrt()

double4_t walberla::simd::qpx::sqrt ( double4_t  a)
inline

◆ store_aligned()

void walberla::simd::qpx::store_aligned ( double *  mem_addr,
double4_t  a 
)
inline

◆ usedInstructionSet()

const char* walberla::simd::qpx::usedInstructionSet ( )
inline