Scalar.h File Reference

Detailed Description

Fallback to scalar operations.

Author
Martin Bauer marti.nosp@m.n.ba.nosp@m.uer@f.nosp@m.au.d.nosp@m.e
#include "waLBerlaDefinitions.h"
#include "core/math/FastInvSqrt.h"
#include <cmath>
#include <limits>
#include "core/logging/Logging.h"

Classes

class  walberla::simd::scalar::double4_t
 

Namespaces

 walberla
 \file TimestepTracker.h \ingroup lbm \author Frederik Hennig frede.nosp@m.rik..nosp@m.henni.nosp@m.g@fa.nosp@m.u.de
 
 walberla::simd
 
 walberla::simd::scalar
 

Functions

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

Variables

const double walberla::simd::scalar::TRUE_MASK = -std::numeric_limits<double>::signaling_NaN()
 
const double walberla::simd::scalar::FALSE_MASK = static_cast<double>( 0x0ul )
 
const uint64_t walberla::simd::scalar::MSB = 0x8000000000000000ul