35 #ifndef _BLAZE_MATH_SIMD_SIMDTRAIT_H_ 36 #define _BLAZE_MATH_SIMD_SIMDTRAIT_H_ 76 enum :
size_t {
size = 1UL };
87 template<
typename T >
88 struct SIMDTraitBase< T,
EnableIf_< And< IsNumeric<T>, IsIntegral<T>, Has1Byte<T> > > >
90 using Type = If_< IsSigned<T>, SIMDint8, SIMDuint8 >;
102 template<
typename T >
103 struct SIMDTraitBase< complex<T>,
EnableIf_< And< IsNumeric<T>, IsIntegral<T>, Has1Byte<T> > > >
105 using Type = If_< IsSigned<T>, SIMDcint8, SIMDcuint8 >;
119 template<
typename T >
120 struct SIMDTraitBase< T,
EnableIf_< And< IsNumeric<T>, IsIntegral<T>, Has2Bytes<T> > > >
122 using Type = If_< IsSigned<T>, SIMDint16, SIMDuint16 >;
134 template<
typename T >
135 struct SIMDTraitBase< complex<T>,
EnableIf_< And< IsNumeric<T>, IsIntegral<T>, Has2Bytes<T> > > >
137 using Type = If_< IsSigned<T>, SIMDcint16, SIMDcuint16 >;
151 template<
typename T >
152 struct SIMDTraitBase< T,
EnableIf_< And< IsNumeric<T>, IsIntegral<T>, Has4Bytes<T> > > >
154 using Type = If_< IsSigned<T>, SIMDint32, SIMDuint32 >;
166 template<
typename T >
167 struct SIMDTraitBase< complex<T>,
EnableIf_< And< IsNumeric<T>, IsIntegral<T>, Has4Bytes<T> > > >
169 using Type = If_< IsSigned<T>, SIMDcint32, SIMDcuint32 >;
183 template<
typename T >
184 struct SIMDTraitBase< T,
EnableIf_< And< IsNumeric<T>, IsIntegral<T>, Has8Bytes<T> > > >
186 using Type = If_< IsSigned<T>, SIMDint64, SIMDuint64 >;
198 template<
typename T >
199 struct SIMDTraitBase< complex<T>,
EnableIf_< And< IsNumeric<T>, IsIntegral<T>, Has8Bytes<T> > > >
201 using Type = If_< IsSigned<T>, SIMDcint64, SIMDcuint64 >;
216 struct SIMDTraitBase<float>
218 using Type = SIMDfloat;
231 struct SIMDTraitBase< complex<float> >
233 using Type = SIMDcfloat;
248 struct SIMDTraitBase<double>
250 using Type = SIMDdouble;
263 struct SIMDTraitBase< complex<double> >
265 using Type = SIMDcdouble;
295 template<
typename T >
297 :
public SIMDTraitBase< RemoveCV_<T> >
315 template<
typename T >
Header file for basic type definitions.
BLAZE_ALWAYS_INLINE size_t size(const Vector< VT, TF > &vector) noexcept
Returns the current size/dimension of the vector.
Definition: Vector.h:265
Header file for the RemoveCV type trait.
typename SIMDTrait< T >::Type SIMDTrait_
Auxiliary alias declaration for the SIMDTrait class template.The SIMDTrait_ alias declaration provide...
Definition: SIMDTrait.h:316
Header file for the IsIntegral type trait.
Header file for the And class template.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Header file for the If class template.
Header file for the EnableIf class template.
Header file for the basic SIMD types.
Header file for the IsNumeric type trait.
Header file for the HasSize type trait.
SIMD characteristics of data types.The SIMDTrait class template provides the SIMD characteristics of ...
Definition: SIMDTrait.h:296
Header file for the IsSigned type trait.
typename EnableIf< Condition, T >::Type EnableIf_
Auxiliary alias declaration for the EnableIf class template.The EnableIf_ alias declaration provides ...
Definition: EnableIf.h:224
System settings for the SSE mode.
Header file for the complex data type.
#define BLAZE_STATIC_ASSERT(expr)
Compile time assertion macro.In case of an invalid compile time expression, a compilation error is cr...
Definition: StaticAssert.h:112