35 #ifndef _BLAZE_UTIL_TYPETRAITS_ISVECTORIZABLE_H_
36 #define _BLAZE_UTIL_TYPETRAITS_ISVECTORIZABLE_H_
64 template<
typename T >
65 struct IsVectorizableHelper
69 template<
typename BT >
70 struct Builtin {
typedef BT Type; };
74 template<
typename CT >
75 struct Complex {
typedef typename CT::value_type Type; };
79 typedef typename If_< IsComplex<T>, Complex<T>, Builtin<T> >::Type T2;
84 enum :
bool { value = ( bool(
BLAZE_SSE_MODE ) && IsFloat<T2>::value ) ||
86 (
bool(
BLAZE_MIC_MODE ) && IsNumeric<T2>::value &&
sizeof(T2) >= 4UL ) };
99 struct IsVectorizableHelper<void>
103 enum :
bool { value =
false };
132 template<
typename T >
Compile time check for vectorizable types.Depending on the available instruction set (SSE...
Definition: IsVectorizable.h:133
Header file for the RemoveCV type trait.
Generic wrapper for a compile time constant integral value.The IntegralConstant class template repres...
Definition: IntegralConstant.h:71
#define BLAZE_MIC_MODE
Compilation switch for the MIC mode.This compilation switch enables/disables the MIC mode...
Definition: Vectorization.h:248
Header file for the IsFloat type trait.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Header file for the If class template.
#define BLAZE_SSE_MODE
Compilation switch for the SSE mode.This compilation switch enables/disables the SSE mode...
Definition: Vectorization.h:129
Header file for the IsNumeric type trait.
Header file for the IsComplex type trait.
System settings for the SSE mode.
#define BLAZE_SSE2_MODE
Compilation switch for the SSE2 mode.This compilation switch enables/disables the SSE2 mode...
Definition: Vectorization.h:146