VecTVecMultExpr.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_CONSTRAINTS_VECTVECMULTEXPR_H_
36 #define _BLAZE_MATH_CONSTRAINTS_VECTVECMULTEXPR_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
46 #include <blaze/util/mpl/And.h>
47 
48 
49 namespace blaze {
50 
51 //=================================================================================================
52 //
53 // MUST_BE_VECTVECMULTEXPR_TYPE CONSTRAINT
54 //
55 //=================================================================================================
56 
57 //*************************************************************************************************
64 #define BLAZE_CONSTRAINT_MUST_BE_VECTVECMULTEXPR_TYPE(T) \
65  static_assert( ::blaze::IsVecTVecMultExpr<T>::value, "Non-outer product expression type detected" )
66 //*************************************************************************************************
67 
68 
69 
70 
71 //=================================================================================================
72 //
73 // MUST_NOT_BE_VECTVECMULTEXPR_TYPE CONSTRAINT
74 //
75 //=================================================================================================
76 
77 //*************************************************************************************************
84 #define BLAZE_CONSTRAINT_MUST_NOT_BE_VECTVECMULTEXPR_TYPE(T) \
85  static_assert( !::blaze::IsVecTVecMultExpr<T>::value, "Outer product expression type detected" )
86 //*************************************************************************************************
87 
88 
89 
90 
91 //=================================================================================================
92 //
93 // MUST_FORM_VALID_VECTVECMULTEXPR CONSTRAINT
94 //
95 //=================================================================================================
96 
97 //*************************************************************************************************
104 #define BLAZE_CONSTRAINT_MUST_FORM_VALID_VECTVECMULTEXPR(T1,T2) \
105  static_assert( ::blaze::And< ::blaze::IsColumnVector<T1> \
106  , ::blaze::IsRowVector<T2> \
107  >::value, "Invalid vector/vector multiplication expression detected" )
108 //*************************************************************************************************
109 
110 } // namespace blaze
111 
112 #endif
Header file for the IsRowVector type trait.
Header file for the And class template.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Header file for the IsVecTVecMultExpr type trait class.
Header file for the IsColumnVector type trait.