ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Macros
operators.h File Reference

Go to the source code of this file.

Macros

#define VC_OPERATOR_FORWARD_(ret, op)
 
#define VC_OPERATOR_INTENTIONAL_ERROR_1(V, op)
 
#define VC_OPERATOR_INTENTIONAL_ERROR_2(V1, V2, op)
 
#define VC_OPERATOR_INTENTIONAL_ERROR_3(V, _T, op)
 
#define VC_OPERATOR_INTENTIONAL_ERROR(op)
 
#define VC_OPERATOR_FORWARD_COMMUTATIVE(ret, op, op2)
 
#define VC_OPERATOR_FORWARD(ret, op)
 

Macro Definition Documentation

#define VC_OPERATOR_FORWARD (   ret,
  op 
)
Value:
template<typename T> static Vc_ALWAYS_INLINE VC_EXACT_TYPE(T, double, double_##ret) operator op(T x, double_v::AsArg y) { return double_v(x) op y; } \
template<typename T> static Vc_ALWAYS_INLINE VC_EXACT_TYPE(T, float, sfloat_##ret) operator op(T x, sfloat_v::AsArg y) { return sfloat_v(x) op y; } \
template<typename T> static Vc_ALWAYS_INLINE VC_EXACT_TYPE(T, float, float_##ret) operator op(T x, float_v::AsArg y) { return float_v(x) op y; } \
template<typename T> static Vc_ALWAYS_INLINE VC_EXACT_TYPE(T, int, int_##ret) operator op(T x, int_v::AsArg y) { return int_v(x) op y; } \
template<typename T> static Vc_ALWAYS_INLINE VC_EXACT_TYPE(T, unsigned int, uint_##ret) operator op(T x, uint_v::AsArg y) { return uint_v(x) op y; } \
template<typename T> static Vc_ALWAYS_INLINE VC_EXACT_TYPE(T, short, short_##ret) operator op(T x, short_v::AsArg y) { return short_v(x) op y; } \
template<typename T> static Vc_ALWAYS_INLINE VC_EXACT_TYPE(T, unsigned short, ushort_##ret) operator op(T x, ushort_v::AsArg y) { return ushort_v(x) op y; } \
VC_OPERATOR_FORWARD_(ret, op) \
VC_OPERATOR_INTENTIONAL_ERROR(op)
Small helper to encapsulate whether to return the value pointed to by the iterator or its address...
#define VC_EXACT_TYPE(_test, _reference, _type)
Definition: macros.h:362
TTree * T
Double_t x[n]
Definition: legend1.C:17
Vector< double > double_v
Definition: vector.h:416
#define Vc_ALWAYS_INLINE
Definition: macros.h:130
Double_t y[n]
Definition: legend1.C:17

Definition at line 177 of file operators.h.

#define VC_OPERATOR_FORWARD_ (   ret,
  op 
)

Definition at line 72 of file operators.h.

#define VC_OPERATOR_FORWARD_COMMUTATIVE (   ret,
  op,
  op2 
)
Value:
template<typename T> static Vc_ALWAYS_INLINE VC_EXACT_TYPE(T, double, double_##ret) operator op(T x, double_v::AsArg y) { return y op2 x; } \
template<typename T> static Vc_ALWAYS_INLINE VC_EXACT_TYPE(T, float, sfloat_##ret) operator op(T x, sfloat_v::AsArg y) { return y op2 x; } \
template<typename T> static Vc_ALWAYS_INLINE VC_EXACT_TYPE(T, float, float_##ret) operator op(T x, float_v::AsArg y) { return y op2 x; } \
template<typename T> static Vc_ALWAYS_INLINE VC_EXACT_TYPE(T, int, int_##ret) operator op(T x, int_v::AsArg y) { return y op2 x; } \
template<typename T> static Vc_ALWAYS_INLINE VC_EXACT_TYPE(T, unsigned int, uint_##ret) operator op(T x, uint_v::AsArg y) { return y op2 x; } \
template<typename T> static Vc_ALWAYS_INLINE VC_EXACT_TYPE(T, short, short_##ret) operator op(T x, short_v::AsArg y) { return y op2 x; } \
template<typename T> static Vc_ALWAYS_INLINE VC_EXACT_TYPE(T, unsigned short, ushort_##ret) operator op(T x, ushort_v::AsArg y) { return y op2 x; } \
#define VC_OPERATOR_FORWARD_(ret, op)
Definition: operators.h:72
#define VC_EXACT_TYPE(_test, _reference, _type)
Definition: macros.h:362
TTree * T
Double_t x[n]
Definition: legend1.C:17
#define Vc_ALWAYS_INLINE
Definition: macros.h:130
Double_t y[n]
Definition: legend1.C:17
#define VC_OPERATOR_INTENTIONAL_ERROR(op)
Definition: operators.h:163

Definition at line 166 of file operators.h.

#define VC_OPERATOR_INTENTIONAL_ERROR (   op)

Definition at line 163 of file operators.h.

#define VC_OPERATOR_INTENTIONAL_ERROR_1 (   V,
  op 
)
Value:
template<typename T> static inline typename EnableIfNeitherIntegerNorVector<T, Vc::Error::invalid_operands_of_types<V, T> >::Value operator op(const V &, const T &) { return Vc::Error::invalid_operands_of_types<V, T>(); } \
template<typename T> static inline typename EnableIfNeitherIntegerNorVector<T, Vc::Error::invalid_operands_of_types<T, V> >::Value operator op(const T &, const V &) { return Vc::Error::invalid_operands_of_types<T, V>(); }
TTree * T
const char * Value
Definition: TXMLSetup.cxx:73

Definition at line 129 of file operators.h.

#define VC_OPERATOR_INTENTIONAL_ERROR_2 (   V1,
  V2,
  op 
)
Value:
static inline Vc::Error::invalid_operands_of_types<V1, V2> operator op(V1::AsArg, V2::AsArg) { return Vc::Error::invalid_operands_of_types<V1, V2>(); } \
static inline Vc::Error::invalid_operands_of_types<V2, V1> operator op(V2::AsArg, V1::AsArg) { return Vc::Error::invalid_operands_of_types<V2, V1>(); }

Definition at line 133 of file operators.h.

#define VC_OPERATOR_INTENTIONAL_ERROR_3 (   V,
  _T,
  op 
)
Value:
template<typename T> static inline typename EnableIf<IsEqualType<T, _T>::Value, Vc::Error::invalid_operands_of_types<V, T> >::Value operator op(const V &, const T &) { return Vc::Error::invalid_operands_of_types<V, T>(); } \
template<typename T> static inline typename EnableIf<IsEqualType<T, _T>::Value, Vc::Error::invalid_operands_of_types<T, V> >::Value operator op(const T &, const V &) { return Vc::Error::invalid_operands_of_types<T, V>(); }
TTree * T
const char * Value
Definition: TXMLSetup.cxx:73

Definition at line 137 of file operators.h.