35 #ifndef _BLAZE_MATH_CONSTRAINTS_VECTVECMULTEXPR_H_
36 #define _BLAZE_MATH_CONSTRAINTS_VECTVECMULTEXPR_H_
70 template<
bool >
struct CONSTRAINT_MUST_BE_VECTVECMULTEXPR_TYPE_FAILED;
71 template<>
struct CONSTRAINT_MUST_BE_VECTVECMULTEXPR_TYPE_FAILED<true> {
enum { value = 1 }; };
83 #define BLAZE_CONSTRAINT_MUST_BE_VECTVECMULTEXPR_TYPE(T) \
85 blaze::CONSTRAINT_TEST< \
86 blaze::CONSTRAINT_MUST_BE_VECTVECMULTEXPR_TYPE_FAILED< blaze::IsVecTVecMultExpr<T>::value >::value > \
87 BLAZE_JOIN( CONSTRAINT_MUST_BE_VECTVECMULTEXPR_TYPE_TYPEDEF, __LINE__ )
109 template<
bool >
struct CONSTRAINT_MUST_NOT_BE_VECTVECMULTEXPR_TYPE_FAILED;
110 template<>
struct CONSTRAINT_MUST_NOT_BE_VECTVECMULTEXPR_TYPE_FAILED<true> {
enum { value = 1 }; };
122 #define BLAZE_CONSTRAINT_MUST_NOT_BE_VECTVECMULTEXPR_TYPE(T) \
124 blaze::CONSTRAINT_TEST< \
125 blaze::CONSTRAINT_MUST_NOT_BE_VECTVECMULTEXPR_TYPE_FAILED< !blaze::IsVecTVecMultExpr<T>::value >::value > \
126 BLAZE_JOIN( CONSTRAINT_MUST_NOT_BE_VECTVECMULTEXPR_TYPE_TYPEDEF, __LINE__ )
148 template<
bool >
struct CONSTRAINT_MUST_FORM_VALID_VECTVECMULTEXPR_FAILED;
149 template<>
struct CONSTRAINT_MUST_FORM_VALID_VECTVECMULTEXPR_FAILED<true> {
enum { value = 1 }; };
161 #define BLAZE_CONSTRAINT_MUST_FORM_VALID_VECTVECMULTEXPR(T1,T2) \
163 blaze::CONSTRAINT_TEST< \
164 blaze::CONSTRAINT_MUST_FORM_VALID_VECTVECMULTEXPR_FAILED< ( \
165 blaze::And< blaze::IsColumnVector<T1> \
166 , blaze::IsRowVector<T2> \
167 >::value ) >::value > \
168 BLAZE_JOIN( CONSTRAINT_MUST_FORM_VALID_VECTVECMULTEXPR_TYPEDEF, __LINE__ )
190 template<
bool >
struct CONSTRAINT_MUST_NOT_FORM_VALID_VECTVECMULTEXPR_FAILED;
191 template<>
struct CONSTRAINT_MUST_NOT_FORM_VALID_VECTVECMULTEXPR_FAILED<true> {
enum { value = 1 }; };
203 #define BLAZE_CONSTRAINT_MUST_NOT_FORM_VALID_VECTVECMULTEXPR(T1,T2) \
205 blaze::CONSTRAINT_TEST< \
206 blaze::CONSTRAINT_MUST_NOT_FORM_VALID_VECTVECMULTEXPR_FAILED< ( \
207 blaze::Not< blaze::And< blaze::IsColumnVector<T1> \
208 , blaze::IsRowVector<T2> > \
209 >::value ) >::value > \
210 BLAZE_JOIN( CONSTRAINT_MUST_NOT_FORM_VALID_VECTVECMULTEXPR_TYPEDEF, __LINE__ )
Header file for the IsRowVector type trait.
Header file for the And class template.
Header file for the IsVecTVecMultExpr type trait class.
Header file for the Not class template.
Constraint wrapper class.
Header file for the IsColumnVector type trait.
Header file for compile time constraints.