IsHermitian.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_TYPETRAITS_ISHERMITIAN_H_
36 #define _BLAZE_MATH_TYPETRAITS_ISHERMITIAN_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
44 #include <blaze/util/EnableIf.h>
45 #include <blaze/util/FalseType.h>
46 
47 
48 namespace blaze {
49 
50 //=================================================================================================
51 //
52 // CLASS DEFINITION
53 //
54 //=================================================================================================
55 
56 //*************************************************************************************************
58 template< typename T > struct IsHermitian;
60 //*************************************************************************************************
61 
62 
63 //*************************************************************************************************
68 template< typename T
69  , typename = void >
70 struct IsHermitianHelper
71  : public FalseType
72 {};
73 
74 template< typename T > // Type of the operand
75 struct IsHermitianHelper< T, EnableIf_t< IsExpression_v<T> > >
76  : public IsHermitian< typename T::ResultType >::Type
77 {};
79 //*************************************************************************************************
80 
81 
82 //*************************************************************************************************
111 template< typename T >
113  : public IsHermitianHelper<T>
114 {};
115 //*************************************************************************************************
116 
117 
118 //*************************************************************************************************
123 template< typename T >
124 struct IsHermitian< const T >
125  : public IsHermitian<T>
126 {};
128 //*************************************************************************************************
129 
130 
131 //*************************************************************************************************
136 template< typename T >
137 struct IsHermitian< volatile T >
138  : public IsHermitian<T>
139 {};
141 //*************************************************************************************************
142 
143 
144 //*************************************************************************************************
149 template< typename T >
150 struct IsHermitian< const volatile T >
151  : public IsHermitian<T>
152 {};
154 //*************************************************************************************************
155 
156 
157 //*************************************************************************************************
170 template< typename T >
172 //*************************************************************************************************
173 
174 } // namespace blaze
175 
176 #endif
BoolConstant< false > FalseType
Type/value traits base class.The FalseType class is used as base class for type traits and value trai...
Definition: FalseType.h:61
Header file for the FalseType type/value trait base class.
constexpr bool IsHermitian_v
Auxiliary variable template for the IsHermitian type trait.The IsHermitian_v variable template provid...
Definition: IsHermitian.h:171
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
Header file for the EnableIf class template.
Compile time check for Hermitian matrices.This type trait tests whether or not the given template par...
Definition: IsHermitian.h:112
constexpr bool IsExpression_v
Auxiliary variable template for the IsExpression type trait.The IsExpression_v variable template prov...
Definition: IsExpression.h:131
Header file for the IsExpression type trait class.