35 #ifndef _BLAZE_MATH_TYPETRAITS_HASSIMDADD_H_ 36 #define _BLAZE_MATH_TYPETRAITS_HASSIMDADD_H_ 68 struct HasSIMDAddHelper
77 template<
typename T1,
typename T2 >
79 IsNumeric_v<T2> && IsIntegral_v<T2> &&
80 sizeof(T1) ==
sizeof(T2) > >
88 template<
typename T >
103 struct HasSIMDAddHelper< float, float >
105 bool( BLAZE_AVX_MODE ) ||
106 bool( BLAZE_MIC_MODE ) ||
107 bool( BLAZE_AVX512F_MODE ) >
111 struct HasSIMDAddHelper< complex<float>, complex<float> >
113 bool( BLAZE_AVX_MODE ) ||
114 bool( BLAZE_MIC_MODE ) ||
115 bool( BLAZE_AVX512F_MODE ) >
124 struct HasSIMDAddHelper< double, double >
126 bool( BLAZE_AVX_MODE ) ||
127 bool( BLAZE_MIC_MODE ) ||
128 bool( BLAZE_AVX512F_MODE ) >
132 struct HasSIMDAddHelper< complex<double>, complex<double> >
134 bool( BLAZE_AVX_MODE ) ||
135 bool( BLAZE_MIC_MODE ) ||
136 bool( BLAZE_AVX512F_MODE ) >
163 template<
typename T1
167 :
public BoolConstant< HasSIMDAddHelper< RemoveCVRef_t<T1>, RemoveCVRef_t<T2> >::value >
185 template<
typename T1
BoolConstant< false > FalseType
Type/value traits base class.The FalseType class is used as base class for type traits and value trai...
Definition: IntegralConstant.h:121
#define BLAZE_AVX512F_MODE
Compilation switch for the AVX512F mode.This compilation switch enables/disables the AVX512F mode....
Definition: Vectorization.h:246
Generic wrapper for a compile time constant integral value.The IntegralConstant class template repres...
Definition: IntegralConstant.h:72
#define BLAZE_MIC_MODE
Compilation switch for the MIC mode.This compilation switch enables/disables the MIC mode....
Definition: Vectorization.h:299
#define BLAZE_AVX512BW_MODE
Compilation switch for the AVX512BW mode.This compilation switch enables/disables the AVX512BW mode....
Definition: Vectorization.h:264
Header file for the RemoveCVRef type trait.
Header file for the IsIntegral type trait.
Availability of a SIMD addition for the given data types.Depending on the available instruction set (...
Definition: HasSIMDAdd.h:166
constexpr bool HasSIMDAdd_v
Auxiliary variable template for the HasSIMDAdd type trait.The HasSIMDAdd_v variable template provides...
Definition: HasSIMDAdd.h:187
#define BLAZE_AVX2_MODE
Compilation switch for the AVX2 mode.This compilation switch enables/disables the AVX2 mode....
Definition: Vectorization.h:228
typename EnableIf< Condition, T >::Type EnableIf_t
Auxiliary type for the EnableIf class template.The EnableIf_t alias declaration provides a convenient...
Definition: EnableIf.h:138
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
constexpr bool IsNumeric_v
Auxiliary variable template for the IsNumeric type trait.The IsNumeric_v variable template provides a...
Definition: IsNumeric.h:143
Header file for the EnableIf class template.
Header file for the IsNumeric type trait.
IntegralConstant< bool, B > BoolConstant
Generic wrapper for a compile time constant boolean value.The BoolConstant alias template represents ...
Definition: IntegralConstant.h:110
Header file for the IntegralConstant class template.
System settings for the SSE mode.
Header file for the complex data type.
#define BLAZE_SSE2_MODE
Compilation switch for the SSE2 mode.This compilation switch enables/disables the SSE2 mode....
Definition: Vectorization.h:143