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()