Hermitian.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_CONSTRAINTS_HERMITIAN_H_
36 #define _BLAZE_MATH_CONSTRAINTS_HERMITIAN_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
45 #include <blaze/util/Suffix.h>
46 
47 
48 namespace blaze {
49 
50 //=================================================================================================
51 //
52 // MUST_BE_HERMITIAN_MATRIX_TYPE CONSTRAINT
53 //
54 //=================================================================================================
55 
56 //*************************************************************************************************
66 template< bool > struct CONSTRAINT_MUST_BE_HERMITIAN_MATRIX_TYPE_FAILED;
67 template<> struct CONSTRAINT_MUST_BE_HERMITIAN_MATRIX_TYPE_FAILED<true> { enum { value = 1 }; };
69 //*************************************************************************************************
70 
71 
72 //*************************************************************************************************
78 #define BLAZE_CONSTRAINT_MUST_BE_HERMITIAN_MATRIX_TYPE(T) \
79  typedef \
80  blaze::CONSTRAINT_TEST< \
81  blaze::CONSTRAINT_MUST_BE_HERMITIAN_MATRIX_TYPE_FAILED< blaze::IsHermitian<T>::value >::value > \
82  BLAZE_JOIN( CONSTRAINT_MUST_BE_HERMITIAN_MATRIX_TYPE_TYPEDEF, __LINE__ )
83 //*************************************************************************************************
84 
85 
86 
87 
88 //=================================================================================================
89 //
90 // MUST_NOT_BE_HERMITIAN_MATRIX_TYPE CONSTRAINT
91 //
92 //=================================================================================================
93 
94 //*************************************************************************************************
104 template< bool > struct CONSTRAINT_MUST_NOT_BE_HERMITIAN_MATRIX_TYPE_FAILED;
105 template<> struct CONSTRAINT_MUST_NOT_BE_HERMITIAN_MATRIX_TYPE_FAILED<true> { enum { value = 1 }; };
107 //*************************************************************************************************
108 
109 
110 //*************************************************************************************************
116 #define BLAZE_CONSTRAINT_MUST_NOT_BE_HERMITIAN_MATRIX_TYPE(T) \
117  typedef \
118  blaze::CONSTRAINT_TEST< \
119  blaze::CONSTRAINT_MUST_NOT_BE_HERMITIAN_MATRIX_TYPE_FAILED< !blaze::IsHermitian<T>::value >::value > \
120  BLAZE_JOIN( CONSTRAINT_MUST_NOT_BE_HERMITIAN_MATRIX_TYPE_TYPEDEF, __LINE__ )
121 //*************************************************************************************************
122 
123 } // namespace blaze
124 
125 #endif
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Constraint wrapper class.
Header file for the IsHermitian type trait.
Header file for compile time constraints.