Blaze 3.9
HasSIMDErfc.h
Go to the documentation of this file.
1//=================================================================================================
33//=================================================================================================
34
35#ifndef _BLAZE_MATH_TYPETRAITS_HASSIMDERFC_H_
36#define _BLAZE_MATH_TYPETRAITS_HASSIMDERFC_H_
37
38
39//*************************************************************************************************
40// Includes
41//*************************************************************************************************
42
48
49
50namespace blaze {
51
52//=================================================================================================
53//
54// CLASS DEFINITION
55//
56//=================================================================================================
57
58//*************************************************************************************************
63template< typename T > // Type of the operand
64using HasSIMDErfcHelper =
65 BoolConstant< ( IsFloat_v<T> || IsDouble_v<T> ) &&
66 ( bool( BLAZE_SVML_MODE ) ||
67 bool( BLAZE_SLEEF_MODE ) ||
68 bool( BLAZE_XSIMD_MODE ) ) &&
69 ( bool( BLAZE_SSE_MODE ) ||
70 bool( BLAZE_AVX_MODE ) ||
71 bool( BLAZE_MIC_MODE ) ||
72 bool( BLAZE_AVX512F_MODE ) ) >;
74//*************************************************************************************************
75
76
77//*************************************************************************************************
99template< typename T > // Type of the operand
101 : public BoolConstant< HasSIMDErfcHelper< RemoveCVRef_t<T> >::value >
102{};
103//*************************************************************************************************
104
105
106//*************************************************************************************************
119template< typename T > // Type of the operand
121//*************************************************************************************************
122
123} // namespace blaze
124
125#endif
Header file for the IntegralConstant class template.
Header file for the IsDouble type trait.
Header file for the IsFloat type trait.
Header file for the RemoveCVRef type trait.
constexpr bool HasSIMDErfc_v
Auxiliary variable template for the HasSIMDErfc type trait.
Definition: HasSIMDErfc.h:120
#define BLAZE_AVX_MODE
Compilation switch for the AVX mode.
Definition: Vectorization.h:211
#define BLAZE_SVML_MODE
Compilation switch for the SVML mode.
Definition: Vectorization.h:349
#define BLAZE_AVX512F_MODE
Compilation switch for the AVX512F mode.
Definition: Vectorization.h:246
#define BLAZE_XSIMD_MODE
Compilation switch for the XSIMD mode.
Definition: Vectorization.h:383
#define BLAZE_MIC_MODE
Compilation switch for the MIC mode.
Definition: Vectorization.h:299
#define BLAZE_SSE_MODE
Compilation switch for the SSE mode.
Definition: Vectorization.h:126
#define BLAZE_SLEEF_MODE
Compilation switch for the Sleef mode.
Definition: Vectorization.h:366
IntegralConstant< bool, B > BoolConstant
Generic wrapper for a compile time constant boolean value.
Definition: IntegralConstant.h:110
Availability of a SIMD complementary error function (erfc) operation for the given data type.
Definition: HasSIMDErfc.h:102
Generic wrapper for a compile time constant integral value.
Definition: IntegralConstant.h:74
System settings for the SSE mode.