35 #ifndef _BLAZE_MATH_CONSTRAINTS_MATMATADDEXPR_H_
36 #define _BLAZE_MATH_CONSTRAINTS_MATMATADDEXPR_H_
69 #define BLAZE_CONSTRAINT_MUST_BE_MATMATADDEXPR_TYPE(T) \
70 static_assert( ::blaze::IsMatMatAddExpr<T>::value, "Non-matrix/matrix addition expression type detected" )
89 #define BLAZE_CONSTRAINT_MUST_NOT_BE_MATMATADDEXPR_TYPE(T) \
90 static_assert( !::blaze::IsMatMatAddExpr<T>::value, "Matrix/matrix addition expression type detected" )
109 #define BLAZE_CONSTRAINT_MUST_FORM_VALID_MATMATADDEXPR(T1,T2) \
110 static_assert( ::blaze::And< ::blaze::IsMatrix<T1> \
111 , ::blaze::IsMatrix<T2> \
112 , ::blaze::Or< ::blaze::Equal< ::blaze::Rows<T1>, ::blaze::SizeT<0UL> > \
113 , ::blaze::Equal< ::blaze::Rows<T2>, ::blaze::SizeT<0UL> > \
114 , ::blaze::Equal< ::blaze::Rows<T1>, ::blaze::Rows<T2> > > \
115 , ::blaze::Or< ::blaze::Equal< ::blaze::Columns<T1>, ::blaze::SizeT<0UL> > \
116 , ::blaze::Equal< ::blaze::Columns<T2>, ::blaze::SizeT<0UL> > \
117 , ::blaze::Equal< ::blaze::Columns<T1>, ::blaze::Columns<T2> > > \
118 >::value, "Invalid matrix/matrix addition expression detected" )
137 #define BLAZE_CONSTRAINT_MUST_NOT_FORM_VALID_MATMATADDEXPR(T1,T2) \
138 static_assert( ::blaze::Not< ::blaze::And< ::blaze::IsMatrix<T1> \
139 , ::blaze::IsMatrix<T2> \
140 , ::blaze::Or< ::blaze::Equal< ::blaze::Rows<T1>, ::blaze::SizeT<0UL> > \
141 , ::blaze::Equal< ::blaze::Rows<T2>, ::blaze::SizeT<0UL> > \
142 , ::blaze::Equal< ::blaze::Rows<T1>, ::blaze::Rows<T2> > > \
143 , ::blaze::Or< ::blaze::Equal< ::blaze::Columns<T1>, ::blaze::SizeT<0UL> > \
144 , ::blaze::Equal< ::blaze::Columns<T2>, ::blaze::SizeT<0UL> > \
145 , ::blaze::Equal< ::blaze::Columns<T1>, ::blaze::Columns<T2> > > > \
146 >::value, "Valid matrix/matrix addition expression detected" )
Header file for the Rows type trait.
Header file for the And class template.
Header file for the SizeT class template.
Header file for the IsMatMatAddExpr type trait class.
Header file for the IsMatrix type trait.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Header file for the Or class template.
Header file for the Columns type trait.
Header file for the Not class template.
Header file for the Equal class template.