Blaze 3.9
MatVecSolveExpr.h
Go to the documentation of this file.
1//=================================================================================================
33//=================================================================================================
34
35#ifndef _BLAZE_MATH_CONSTRAINTS_MATVECSOLVEEXPR_H_
36#define _BLAZE_MATH_CONSTRAINTS_MATVECSOLVEEXPR_H_
37
38
39//*************************************************************************************************
40// Includes
41//*************************************************************************************************
42
47
48
49namespace blaze {
50
51//=================================================================================================
52//
53// MUST_BE_MATVECSOLVEEXPR_TYPE CONSTRAINT
54//
55//=================================================================================================
56
57//*************************************************************************************************
64#define BLAZE_CONSTRAINT_MUST_BE_MATVECSOLVEEXPR_TYPE(T) \
65 static_assert( ::blaze::IsMatVecSolveExpr_v<T>, "Non-matrix/vector solver expression type detected" )
66//*************************************************************************************************
67
68
69
70
71//=================================================================================================
72//
73// MUST_NOT_BE_MATVECSOLVEEXPR_TYPE CONSTRAINT
74//
75//=================================================================================================
76
77//*************************************************************************************************
84#define BLAZE_CONSTRAINT_MUST_NOT_BE_MATVECSOLVEEXPR_TYPE(T) \
85 static_assert( !::blaze::IsMatVecSolveExpr_v<T>, "Matrix/vector solver expression type detected" )
86//*************************************************************************************************
87
88
89
90
91//=================================================================================================
92//
93// MUST_FORM_VALID_MATVECSOLVEEXPR CONSTRAINT
94//
95//=================================================================================================
96
97//*************************************************************************************************
104#define BLAZE_CONSTRAINT_MUST_FORM_VALID_MATVECSOLVEEXPR(T1,T2) \
105 static_assert( ::blaze::IsDenseMatrix_v<T1> && \
106 ::blaze::IsDenseVector_v<T2> && \
107 ( ::blaze::Size_v<T1,0UL> == -1L || \
108 ::blaze::Size_v<T1,1UL> == -1L || \
109 ::blaze::Size_v<T1,0UL> == ::blaze::Size_v<T1,1UL> ) && \
110 ( ( ::blaze::Size_v<T1,0UL> == -1L && ::blaze::Size_v<T1,1UL> == -1L ) || \
111 ( ::blaze::Size_v<T2,0UL> == -1L ) || \
112 ( ::blaze::Size_v<T1,0UL> == ::blaze::Size_v<T2,0UL> ) || \
113 ( ::blaze::Size_v<T1,1UL> == ::blaze::Size_v<T2,0UL> ) ) \
114 , "Invalid matrix/vector solver expression detected" )
115//*************************************************************************************************
116
117} // namespace blaze
118
119#endif
Header file for the IsDenseMatrix type trait.
Header file for the IsDenseVector type trait.
Header file for the IsMatVecSolveExpr type trait class.
Header file for the Size type trait.