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_SSE_MODE ) ||
72 bool( BLAZE_AVX_MODE ) ||
73 bool( BLAZE_MIC_MODE ) ||
74 bool( BLAZE_AVX512F_MODE ) ) >;
76//*************************************************************************************************
77
78
79//*************************************************************************************************
101template< typename T1 // Type of the left-hand side operand
102 , typename T2 > // Type of the right-hand side operand
104 : public BoolConstant< HasSIMDAtan2Helper< RemoveCVRef_t<T1>, RemoveCVRef_t<T2> >::value >
105{};
106//*************************************************************************************************
107
108
109//*************************************************************************************************
122template< typename T1 // Type of the left-hand side operand
123 , typename T2 > // Type of the right-hand side operand
125//*************************************************************************************************
126
127} // namespace blaze
128
129#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:124
#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_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:105
Generic wrapper for a compile time constant integral value.
Definition: IntegralConstant.h:74
System settings for the SSE mode.