FflasFfpack
Public Types | Static Public Member Functions | Static Public Attributes
Simd256_impl< true, false, true, 8 > Struct Template Reference
+ Inheritance diagram for Simd256_impl< true, false, true, 8 >:

Public Types

using vect_t = __m256d
 
using scalar_t = double
 

Static Public Member Functions

template<class T >
static constexpr bool valid (T *p)
 
template<class T >
static constexpr bool compliant (T n)
 
static INLINE CONST vect_t zero ()
 
static INLINE CONST vect_t set1 (const scalar_t x)
 
static INLINE CONST vect_t set (const scalar_t x1, const scalar_t x2, const scalar_t x3, const scalar_t x4)
 
template<class T >
static INLINE PURE vect_t gather (const scalar_t *const p, const T *const idx)
 
static INLINE PURE vect_t load (const scalar_t *const p)
 
static INLINE PURE vect_t loadu (const scalar_t *const p)
 
static INLINE void store (const scalar_t *p, const vect_t v)
 
static INLINE void storeu (const scalar_t *p, const vect_t v)
 
static INLINE void stream (const scalar_t *p, const vect_t v)
 
static INLINE CONST vect_t unpacklo_twice (const vect_t a, const vect_t b)
 
static INLINE CONST vect_t unpackhi_twice (const vect_t a, const vect_t b)
 
template<uint8_t s>
static INLINE CONST vect_t blend (const vect_t a, const vect_t b)
 
static INLINE CONST vect_t blendv (const vect_t a, const vect_t b, const vect_t mask)
 
static INLINE CONST vect_t add (const vect_t a, const vect_t b)
 
static INLINE vect_t addin (vect_t &a, const vect_t b)
 
static INLINE CONST vect_t sub (const vect_t a, const vect_t b)
 
static INLINE CONST vect_t subin (vect_t &a, const vect_t b)
 
static INLINE CONST vect_t mul (const vect_t a, const vect_t b)
 
static INLINE CONST vect_t mulin (vect_t &a, const vect_t b)
 
static INLINE CONST vect_t div (const vect_t a, const vect_t b)
 
static INLINE CONST vect_t fmadd (const vect_t c, const vect_t a, const vect_t b)
 
static INLINE CONST vect_t fmaddin (vect_t &c, const vect_t a, const vect_t b)
 
static INLINE CONST vect_t fnmadd (const vect_t c, const vect_t a, const vect_t b)
 
static INLINE CONST vect_t fnmaddin (vect_t &c, const vect_t a, const vect_t b)
 
static INLINE CONST vect_t fmsub (const vect_t c, const vect_t a, const vect_t b)
 
static INLINE CONST vect_t fmsubin (vect_t &c, const vect_t a, const vect_t b)
 
static INLINE CONST vect_t eq (const vect_t a, const vect_t b)
 
static INLINE CONST vect_t lesser (const vect_t a, const vect_t b)
 
static INLINE CONST vect_t lesser_eq (const vect_t a, const vect_t b)
 
static INLINE CONST vect_t greater (const vect_t a, const vect_t b)
 
static INLINE CONST vect_t greater_eq (const vect_t a, const vect_t b)
 
static INLINE CONST vect_t vand (const vect_t a, const vect_t b)
 
static INLINE CONST vect_t vor (const vect_t a, const vect_t b)
 
static INLINE CONST vect_t vxor (const vect_t a, const vect_t b)
 
static INLINE CONST vect_t vandnot (const vect_t a, const vect_t b)
 
static INLINE CONST vect_t floor (const vect_t a)
 
static INLINE CONST vect_t ceil (const vect_t a)
 
static INLINE CONST vect_t round (const vect_t a)
 
static INLINE CONST vect_t hadd (const vect_t a, const vect_t b)
 
static INLINE CONST scalar_t hadd_to_scal (const vect_t a)
 
static INLINE vect_t mod (vect_t &C, const vect_t &P, const vect_t &INVP, const vect_t &NEGP, const vect_t &MIN, const vect_t &MAX, vect_t &Q, vect_t &T)
 

Static Public Attributes

static const constexpr size_t vect_size = 4
 
static const constexpr size_t alignment = 32
 

Member Typedef Documentation

◆ vect_t

using vect_t = __m256d

◆ scalar_t

using scalar_t = double

Member Function Documentation

◆ valid()

static constexpr bool valid ( T *  p)
inlinestatic

◆ compliant()

static constexpr bool compliant ( n)
inlinestatic

◆ zero()

static INLINE CONST vect_t zero ( )
inlinestatic

◆ set1()

static INLINE CONST vect_t set1 ( const scalar_t  x)
inlinestatic

◆ set()

static INLINE CONST vect_t set ( const scalar_t  x1,
const scalar_t  x2,
const scalar_t  x3,
const scalar_t  x4 
)
inlinestatic

◆ gather()

static INLINE PURE vect_t gather ( const scalar_t *const  p,
const T *const  idx 
)
inlinestatic

◆ load()

static INLINE PURE vect_t load ( const scalar_t *const  p)
inlinestatic

◆ loadu()

static INLINE PURE vect_t loadu ( const scalar_t *const  p)
inlinestatic

◆ store()

static INLINE void store ( const scalar_t p,
const vect_t  v 
)
inlinestatic

◆ storeu()

static INLINE void storeu ( const scalar_t p,
const vect_t  v 
)
inlinestatic

◆ stream()

static INLINE void stream ( const scalar_t p,
const vect_t  v 
)
inlinestatic

◆ unpacklo_twice()

static INLINE CONST vect_t unpacklo_twice ( const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ unpackhi_twice()

static INLINE CONST vect_t unpackhi_twice ( const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ blend()

static INLINE CONST vect_t blend ( const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ blendv()

static INLINE CONST vect_t blendv ( const vect_t  a,
const vect_t  b,
const vect_t  mask 
)
inlinestatic

◆ add()

static INLINE CONST vect_t add ( const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ addin()

static INLINE vect_t addin ( vect_t a,
const vect_t  b 
)
inlinestatic

◆ sub()

static INLINE CONST vect_t sub ( const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ subin()

static INLINE CONST vect_t subin ( vect_t a,
const vect_t  b 
)
inlinestatic

◆ mul()

static INLINE CONST vect_t mul ( const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ mulin()

static INLINE CONST vect_t mulin ( vect_t a,
const vect_t  b 
)
inlinestatic

◆ div()

static INLINE CONST vect_t div ( const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ fmadd()

static INLINE CONST vect_t fmadd ( const vect_t  c,
const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ fmaddin()

static INLINE CONST vect_t fmaddin ( vect_t c,
const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ fnmadd()

static INLINE CONST vect_t fnmadd ( const vect_t  c,
const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ fnmaddin()

static INLINE CONST vect_t fnmaddin ( vect_t c,
const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ fmsub()

static INLINE CONST vect_t fmsub ( const vect_t  c,
const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ fmsubin()

static INLINE CONST vect_t fmsubin ( vect_t c,
const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ eq()

static INLINE CONST vect_t eq ( const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ lesser()

static INLINE CONST vect_t lesser ( const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ lesser_eq()

static INLINE CONST vect_t lesser_eq ( const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ greater()

static INLINE CONST vect_t greater ( const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ greater_eq()

static INLINE CONST vect_t greater_eq ( const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ vand()

static INLINE CONST vect_t vand ( const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ vor()

static INLINE CONST vect_t vor ( const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ vxor()

static INLINE CONST vect_t vxor ( const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ vandnot()

static INLINE CONST vect_t vandnot ( const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ floor()

static INLINE CONST vect_t floor ( const vect_t  a)
inlinestatic

◆ ceil()

static INLINE CONST vect_t ceil ( const vect_t  a)
inlinestatic

◆ round()

static INLINE CONST vect_t round ( const vect_t  a)
inlinestatic

◆ hadd()

static INLINE CONST vect_t hadd ( const vect_t  a,
const vect_t  b 
)
inlinestatic

◆ hadd_to_scal()

static INLINE CONST scalar_t hadd_to_scal ( const vect_t  a)
inlinestatic

◆ mod()

static INLINE vect_t mod ( vect_t C,
const vect_t P,
const vect_t INVP,
const vect_t NEGP,
const vect_t MIN,
const vect_t MAX,
vect_t Q,
vect_t T 
)
inlinestatic

Field Documentation

◆ vect_size

const constexpr size_t vect_size = 4
static

◆ alignment

const constexpr size_t alignment = 32
static

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