TransposeFlag.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_CONSTRAINTS_TRANSPOSEFLAG_H_
36 #define _BLAZE_MATH_CONSTRAINTS_TRANSPOSEFLAG_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
45 
46 
47 namespace blaze {
48 
49 //=================================================================================================
50 //
51 // MUST_BE_VECTOR_WITH_TRANSPOSE_FLAG CONSTRAINT
52 //
53 //=================================================================================================
54 
55 //*************************************************************************************************
63 #define BLAZE_CONSTRAINT_MUST_BE_VECTOR_WITH_TRANSPOSE_FLAG(T,TF) \
64  static_assert( ::blaze::IsVector<T>::value && \
65  ::blaze::TransposeFlag<T>::value == TF, "Invalid transpose flag detected" )
66 //*************************************************************************************************
67 
68 
69 
70 
71 //=================================================================================================
72 //
73 // VECTORS_MUST_HAVE_SAME_TRANSPOSE_FLAG CONSTRAINT
74 //
75 //=================================================================================================
76 
77 //*************************************************************************************************
84 #define BLAZE_CONSTRAINT_VECTORS_MUST_HAVE_SAME_TRANSPOSE_FLAG(T1,T2) \
85  static_assert( ::blaze::IsVector<T1>::value && \
86  ::blaze::IsVector<T2>::value && \
87  ::blaze::TransposeFlag<T1>::value == ::blaze::TransposeFlag<T2>::value, "Invalid transpose flag detected" )
88 //*************************************************************************************************
89 
90 
91 
92 
93 //=================================================================================================
94 //
95 // VECTORS_MUST_HAVE_DIFFERENT_TRANSPOSE_FLAG CONSTRAINT
96 //
97 //=================================================================================================
98 
99 //*************************************************************************************************
106 #define BLAZE_CONSTRAINT_VECTORS_MUST_HAVE_DIFFERENT_TRANSPOSE_FLAG(T1,T2) \
107  static_assert( ::blaze::IsVector<T1>::value && \
108  ::blaze::IsVector<T2>::value && \
109  ::blaze::TransposeFlag<T1>::value != ::blaze::TransposeFlag<T2>::value, "Invalid transpose flag detected" )
110 //*************************************************************************************************
111 
112 } // namespace blaze
113 
114 #endif
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
Header file for the TransposeFlag type trait.
Header file for the IsVector type trait.