Blaze 3.9
HasSIMDAtan2.h
Go to the documentation of this file.
1//=================================================================================================
33//=================================================================================================
34
35#ifndef _BLAZE_MATH_TYPETRAITS_HASSIMDATAN2_H_
36#define _BLAZE_MATH_TYPETRAITS_HASSIMDATAN2_H_
37
38
39//*************************************************************************************************
40// Includes
41//*************************************************************************************************
42
49
50
51namespace blaze {
52
53//=================================================================================================
54//
55// CLASS DEFINITION
56//
57//=================================================================================================
58
59//*************************************************************************************************
64template< typename T1 // Type of the left-hand side operand
65 , typename T2 > // Type of the right-hand side operand
66using HasSIMDAtan2Helper =
67 BoolConstant< IsSame_v<T1,T2> &&
68 ( IsFloat_v<T1> || IsDouble_v<T1> ) &&
69 ( bool( BLAZE_SVML_MODE ) ||
70 bool( BLAZE_SLEEF_MODE ) ||
71 bool( BLAZE_XSIMD_MODE ) ) &&
72 ( bool( BLAZE_SSE_MODE ) ||
73 bool( BLAZE_AVX_MODE ) ||
74 bool( BLAZE_MIC_MODE ) ||
75 bool( BLAZE_AVX512F_MODE ) ) >;
77//*************************************************************************************************
78
79
80//*************************************************************************************************
102template< typename T1 // Type of the left-hand side operand
103 , typename T2 > // Type of the right-hand side operand
105 : public BoolConstant< HasSIMDAtan2Helper< RemoveCVRef_t<T1>, RemoveCVRef_t<T2> >::value >
106{};
107//*************************************************************************************************
108
109
110//*************************************************************************************************
123template< typename T1 // Type of the left-hand side operand
124 , typename T2 > // Type of the right-hand side operand
126//*************************************************************************************************
127
128} // namespace blaze
129
130#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 IsSame and IsStrictlySame type traits.
Header file for the RemoveCVRef type trait.
constexpr bool HasSIMDAtan2_v
Auxiliary variable template for the HasSIMDAtan2 type trait.
Definition: HasSIMDAtan2.h:125
#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
Availability of a SIMD inverse tangent operation for the given data types.
Definition: HasSIMDAtan2.h:106
Generic wrapper for a compile time constant integral value.
Definition: IntegralConstant.h:74
System settings for the SSE mode.