ROOT  6.06/09
Reference Guide
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions
vector.h File Reference
#include "intrinsics.h"
#include "vectorhelper.h"
#include "mask.h"
#include "writemaskedvector.h"
#include "sorthelper.h"
#include <algorithm>
#include <cmath>
#include "../common/aliasingentryhelper.h"
#include "../common/memoryfwd.h"
#include "macros.h"
#include "forceToRegisters.tcc"
#include "vector.tcc"
#include "math.h"
+ Include dependency graph for vector.h:

Go to the source code of this file.

Classes

class  ROOT::Vc::AVX::Vector< T >
 
class  ROOT::Vc::AVX::SwizzledVector< T >
 

Namespaces

 ROOT
 Namespace for new ROOT classes and functions.
 
 ROOT::Vc
 
 ROOT::Vc::AVX
 

Macros

#define OP1(fun)
 
#define OP(symbol, fun)
 
#define OP_VEC(op)
 
#define OP_ENTRY(op)
 
#define OPcmp(symbol, fun)
 

Typedefs

typedef Vector< doubleROOT::Vc::AVX::double_v
 
typedef Vector< float > ROOT::Vc::AVX::float_v
 
typedef Vector< sfloat > ROOT::Vc::AVX::sfloat_v
 
typedef Vector< int > ROOT::Vc::AVX::int_v
 
typedef Vector< unsigned int > ROOT::Vc::AVX::uint_v
 
typedef Vector< short > ROOT::Vc::AVX::short_v
 
typedef Vector< unsigned short > ROOT::Vc::AVX::ushort_v
 
typedef double_v::Mask ROOT::Vc::AVX::double_m
 
typedef float_v::Mask ROOT::Vc::AVX::float_m
 
typedef sfloat_v::Mask ROOT::Vc::AVX::sfloat_m
 
typedef int_v::Mask ROOT::Vc::AVX::int_m
 
typedef uint_v::Mask ROOT::Vc::AVX::uint_m
 
typedef short_v::Mask ROOT::Vc::AVX::short_m
 
typedef ushort_v::Mask ROOT::Vc::AVX::ushort_m
 

Enumerations

enum  ROOT::Vc::AVX::VectorAlignmentEnum { ROOT::Vc::AVX::VectorAlignment = 32 }
 

Functions

static Vc_ALWAYS_INLINE int_v ROOT::Vc::AVX::min (const int_v &x, const int_v &y)
 
static Vc_ALWAYS_INLINE uint_v ROOT::Vc::AVX::min (const uint_v &x, const uint_v &y)
 
static Vc_ALWAYS_INLINE short_v ROOT::Vc::AVX::min (const short_v &x, const short_v &y)
 
static Vc_ALWAYS_INLINE ushort_v ROOT::Vc::AVX::min (const ushort_v &x, const ushort_v &y)
 
static Vc_ALWAYS_INLINE float_v ROOT::Vc::AVX::min (const float_v &x, const float_v &y)
 
static Vc_ALWAYS_INLINE int_v ROOT::Vc::AVX::max (const int_v &x, const int_v &y)
 
static Vc_ALWAYS_INLINE uint_v ROOT::Vc::AVX::max (const uint_v &x, const uint_v &y)
 
static Vc_ALWAYS_INLINE short_v ROOT::Vc::AVX::max (const short_v &x, const short_v &y)
 
static Vc_ALWAYS_INLINE ushort_v ROOT::Vc::AVX::max (const ushort_v &x, const ushort_v &y)
 
static Vc_ALWAYS_INLINE float_v ROOT::Vc::AVX::max (const float_v &x, const float_v &y)
 
template<typename T >
static Vc_ALWAYS_INLINE Vector< T > ROOT::Vc::AVX::sqrt (const Vector< T > &x)
 
template<typename T >
static Vc_ALWAYS_INLINE Vector< T > ROOT::Vc::AVX::rsqrt (const Vector< T > &x)
 
template<typename T >
static Vc_ALWAYS_INLINE Vector< T > ROOT::Vc::AVX::abs (const Vector< T > &x)
 
template<typename T >
static Vc_ALWAYS_INLINE Vector< T > ROOT::Vc::AVX::reciprocal (const Vector< T > &x)
 
template<typename T >
static Vc_ALWAYS_INLINE Vector< T > ROOT::Vc::AVX::round (const Vector< T > &x)
 
template<typename T >
static Vc_ALWAYS_INLINE Vector< T >::Mask ROOT::Vc::AVX::isfinite (const Vector< T > &x)
 
template<typename T >
static Vc_ALWAYS_INLINE Vector< T >::Mask ROOT::Vc::AVX::isnan (const Vector< T > &x)
 

Macro Definition Documentation

#define OP (   symbol,
  fun 
)
Value:
Vc_ALWAYS_INLINE Vector &operator symbol##=(const Vector<T> &x) { data() = VectorHelper<T>::fun(data(), x.data()); return *this; } \
Vc_ALWAYS_INLINE Vector &operator symbol##=(EntryType x) { return operator symbol##=(Vector(x)); } \
Vc_ALWAYS_INLINE Vector operator symbol(const Vector<T> &x) const { return Vector<T>(VectorHelper<T>::fun(data(), x.data())); } \
template<typename TT> Vc_ALWAYS_INLINE VC_EXACT_TYPE(TT, EntryType, Vector) operator symbol(TT x) const { return operator symbol(Vector(x)); }
#define VC_EXACT_TYPE(_test, _reference, _type)
Definition: macros.h:362
Double_t x[n]
Definition: legend1.C:17
#define Vc_ALWAYS_INLINE
Definition: macros.h:130

Definition at line 253 of file vector.h.

#define OP1 (   fun)
Value:
Vc_ALWAYS_INLINE Vector fun() const { return Vector<T>(VectorHelper<T>::fun(data())); } \
Vc_ALWAYS_INLINE Vector &fun##_eq() { data() = VectorHelper<T>::fun(data()); return *this; }
#define Vc_ALWAYS_INLINE
Definition: macros.h:130

Definition at line 246 of file vector.h.

#define OP_ENTRY (   op)
Value:
Vc_ALWAYS_INLINE Vector<T> &operator op##=(EntryType x) { return operator op##=(Vector(x)); } \
template<typename TT> Vc_ALWAYS_INLINE Vc_PURE VC_EXACT_TYPE(TT, EntryType, Vector) operator op(TT x) const { return operator op(Vector(x)); }
#define VC_EXACT_TYPE(_test, _reference, _type)
Definition: macros.h:362
Double_t x[n]
Definition: legend1.C:17
#define Vc_PURE
Definition: macros.h:136
#define Vc_ALWAYS_INLINE
Definition: macros.h:130

Definition at line 272 of file vector.h.

#define OP_VEC (   op)
Value:
Vc_ALWAYS_INLINE_L Vector<T> &operator op##=(AsArg x) Vc_ALWAYS_INLINE_R; \
Vc_ALWAYS_INLINE_L Vc_PURE_L Vector<T> operator op (AsArg x) const Vc_ALWAYS_INLINE_R Vc_PURE_R;
#define Vc_PURE_L
Definition: macros.h:137
Double_t x[n]
Definition: legend1.C:17
#define Vc_ALWAYS_INLINE_R
Definition: macros.h:132
#define Vc_ALWAYS_INLINE_L
Definition: macros.h:131
#define Vc_PURE_R
Definition: macros.h:138

Definition at line 269 of file vector.h.

#define OPcmp (   symbol,
  fun 
)
Value:
Vc_ALWAYS_INLINE Mask operator symbol(AsArg x) const { return VectorHelper<T>::fun(data(), x.data()); } \
template<typename TT> Vc_ALWAYS_INLINE VC_EXACT_TYPE(TT, EntryType, Mask) operator symbol(TT x) const { return operator symbol(Vector(x)); }
#define VC_EXACT_TYPE(_test, _reference, _type)
Definition: macros.h:362
Double_t x[n]
Definition: legend1.C:17
#define Vc_ALWAYS_INLINE
Definition: macros.h:130

Definition at line 286 of file vector.h.