35 #ifndef _BLAZE_MATH_CONSTRAINTS_ROWS_H_
36 #define _BLAZE_MATH_CONSTRAINTS_ROWS_H_
69 template<
bool >
struct CONSTRAINT_MUST_HAVE_EQUAL_NUMBER_OF_ROWS_FAILED;
70 template<>
struct CONSTRAINT_MUST_HAVE_EQUAL_NUMBER_OF_ROWS_FAILED<true> {
enum { value = 1 }; };
84 #define BLAZE_CONSTRAINT_MUST_HAVE_EQUAL_NUMBER_OF_ROWS(T1,T2) \
86 blaze::CONSTRAINT_TEST< \
87 blaze::CONSTRAINT_MUST_HAVE_EQUAL_NUMBER_OF_ROWS_FAILED< ( \
88 blaze::Or< blaze::Equal< blaze::Rows<T1>, blaze::SizeT<0UL> > \
89 , blaze::Equal< blaze::Rows<T2>, blaze::SizeT<0UL> > \
90 , blaze::Equal< blaze::Rows<T1>, blaze::Rows<T2> > \
91 >::value ) >::value > \
92 BLAZE_JOIN( CONSTRAINT_MUST_HAVE_EQUAL_NUMBER_OF_ROWS_TYPEDEF, __LINE__ )
114 template<
bool >
struct CONSTRAINT_MUST_NOT_HAVE_EQUAL_NUMBER_OF_ROWS_FAILED;
115 template<>
struct CONSTRAINT_MUST_NOT_HAVE_EQUAL_NUMBER_OF_ROWS_FAILED<true> {
enum { value = 1 }; };
129 #define BLAZE_CONSTRAINT_MUST_NOT_HAVE_EQUAL_NUMBER_OF_ROWS(T1,T2) \
131 blaze::CONSTRAINT_TEST< \
132 blaze::CONSTRAINT_MUST_HAVE_EQUAL_NUMBER_OF_ROWS_FAILED< ( \
133 blaze::Or< blaze::Equal< blaze::Rows<T1>, blaze::SizeT<0UL> > \
134 , blaze::Equal< blaze::Rows<T2>, blaze::SizeT<0UL> > \
135 , blaze::Not< blaze::Equal< blaze::Rows<T1>, blaze::Rows<T2> > > \
136 >::value ) >::value > \
137 BLAZE_JOIN( CONSTRAINT_MUST_NOT_HAVE_EQUAL_NUMBER_OF_ROWS_TYPEDEF, __LINE__ )
Header file for the Rows type trait.
Header file for the SizeT class template.
Header file for the Or class template.
Constraint wrapper class.
Header file for compile time constraints.
Header file for the Equal class template.