20 #ifndef VC_AVX_LIMITS_H
21 #define VC_AVX_LIMITS_H
28 #define _VC_NUM_LIM(T, _max, _min) \
29 template<> struct numeric_limits< ::ROOT::Vc::AVX::Vector<T> > : public numeric_limits<T> \
31 static Vc_INTRINSIC Vc_CONST ::ROOT::Vc::AVX::Vector<T> max() _VC_NOEXCEPT { return _max; } \
32 static Vc_INTRINSIC Vc_CONST ::ROOT::Vc::AVX::Vector<T> min() _VC_NOEXCEPT { return _min; } \
33 static Vc_INTRINSIC Vc_CONST ::ROOT::Vc::AVX::Vector<T> lowest() _VC_NOEXCEPT { return min(); } \
34 static Vc_INTRINSIC Vc_CONST ::ROOT::Vc::AVX::Vector<T> epsilon() _VC_NOEXCEPT { return ::ROOT::Vc::AVX::Vector<T>::Zero(); } \
35 static Vc_INTRINSIC Vc_CONST ::ROOT::Vc::AVX::Vector<T> round_error() _VC_NOEXCEPT { return ::ROOT::Vc::AVX::Vector<T>::Zero(); } \
36 static Vc_INTRINSIC Vc_CONST ::ROOT::Vc::AVX::Vector<T> infinity() _VC_NOEXCEPT { return ::ROOT::Vc::AVX::Vector<T>::Zero(); } \
37 static Vc_INTRINSIC Vc_CONST ::ROOT::Vc::AVX::Vector<T> quiet_NaN() _VC_NOEXCEPT { return ::ROOT::Vc::AVX::Vector<T>::Zero(); } \
38 static Vc_INTRINSIC Vc_CONST ::ROOT::Vc::AVX::Vector<T> signaling_NaN() _VC_NOEXCEPT { return ::ROOT::Vc::AVX::Vector<T>::Zero(); } \
39 static Vc_INTRINSIC Vc_CONST ::ROOT::Vc::AVX::Vector<T> denorm_min() _VC_NOEXCEPT { return ::ROOT::Vc::AVX::Vector<T>::Zero(); } \
44 using ::ROOT::Vc::AVX::_mm256_srli_epi32;
55 #endif // VC_AVX_LIMITS_H
static Vc_INTRINSIC m256i Vc_CONST _mm256_setmin_epi32()
static Vc_INTRINSIC m128i Vc_CONST _mm_setallone_si128()
static Vc_INTRINSIC m128i Vc_CONST _mm_setmin_epi16()
#define _VC_NUM_LIM(T, _max, _min)
static Vc_INTRINSIC m256i Vc_CONST _mm256_setallone_si256()