All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IsTVecMatMultExpr.h
Go to the documentation of this file.
1 //=================================================================================================
20 //=================================================================================================
21 
22 #ifndef _BLAZE_MATH_TYPETRAITS_ISTVECMATMULTEXPR_H_
23 #define _BLAZE_MATH_TYPETRAITS_ISTVECMATMULTEXPR_H_
24 
25 
26 //*************************************************************************************************
27 // Includes
28 //*************************************************************************************************
29 
30 #include <boost/type_traits/remove_cv.hpp>
32 #include <blaze/util/FalseType.h>
33 #include <blaze/util/TrueType.h>
34 
35 
36 namespace blaze {
37 
38 //=================================================================================================
39 //
40 // CLASS DEFINITION
41 //
42 //=================================================================================================
43 
44 //*************************************************************************************************
49 template< typename T >
50 struct IsTVecMatMultExprHelper
51 {
52  //**********************************************************************************************
53  enum { value = 0 };
54  typedef FalseType Type;
55  //**********************************************************************************************
56 };
58 //*************************************************************************************************
59 
60 
61 //*************************************************************************************************
63 
64 template< typename VT, typename MT >
65 struct IsTVecMatMultExprHelper< TDVecDMatMultExpr<VT,MT> > : public TrueType
66 {
67  public:
68  //**********************************************************************************************
69  enum { value = 1 };
70  typedef TrueType Type;
71  //**********************************************************************************************
72 };
74 //*************************************************************************************************
75 
76 
77 //*************************************************************************************************
79 
80 template< typename VT, typename MT >
81 struct IsTVecMatMultExprHelper< TDVecTDMatMultExpr<VT,MT> > : public TrueType
82 {
83  public:
84  //**********************************************************************************************
85  enum { value = 1 };
86  typedef TrueType Type;
87  //**********************************************************************************************
88 };
90 //*************************************************************************************************
91 
92 
93 //*************************************************************************************************
95 
96 template< typename VT, typename MT >
97 struct IsTVecMatMultExprHelper< TSVecDMatMultExpr<VT,MT> > : public TrueType
98 {
99  public:
100  //**********************************************************************************************
101  enum { value = 1 };
102  typedef TrueType Type;
103  //**********************************************************************************************
104 };
106 //*************************************************************************************************
107 
108 
109 //*************************************************************************************************
111 
112 template< typename VT, typename MT >
113 struct IsTVecMatMultExprHelper< TSVecTDMatMultExpr<VT,MT> > : public TrueType
114 {
115  public:
116  //**********************************************************************************************
117  enum { value = 1 };
118  typedef TrueType Type;
119  //**********************************************************************************************
120 };
122 //*************************************************************************************************
123 
124 
125 //*************************************************************************************************
127 
128 template< typename VT, typename MT >
129 struct IsTVecMatMultExprHelper< TDVecSMatMultExpr<VT,MT> > : public TrueType
130 {
131  public:
132  //**********************************************************************************************
133  enum { value = 1 };
134  typedef TrueType Type;
135  //**********************************************************************************************
136 };
138 //*************************************************************************************************
139 
140 
141 //*************************************************************************************************
143 
144 template< typename VT, typename MT >
145 struct IsTVecMatMultExprHelper< TDVecTSMatMultExpr<VT,MT> > : public TrueType
146 {
147  public:
148  //**********************************************************************************************
149  enum { value = 1 };
150  typedef TrueType Type;
151  //**********************************************************************************************
152 };
154 //*************************************************************************************************
155 
156 
157 //*************************************************************************************************
159 
160 template< typename VT, typename MT >
161 struct IsTVecMatMultExprHelper< TSVecSMatMultExpr<VT,MT> > : public TrueType
162 {
163  public:
164  //**********************************************************************************************
165  enum { value = 1 };
166  typedef TrueType Type;
167  //**********************************************************************************************
168 };
170 //*************************************************************************************************
171 
172 
173 //*************************************************************************************************
175 
176 template< typename VT, typename MT >
177 struct IsTVecMatMultExprHelper< TSVecTSMatMultExpr<VT,MT> > : public TrueType
178 {
179  public:
180  //**********************************************************************************************
181  enum { value = 1 };
182  typedef TrueType Type;
183  //**********************************************************************************************
184 };
186 //*************************************************************************************************
187 
188 
189 //*************************************************************************************************
199 template< typename T >
200 struct IsTVecMatMultExpr : public IsTVecMatMultExprHelper< typename boost::remove_cv<T>::type >::Type
201 {
202  public:
203  //**********************************************************************************************
205  enum { value = IsTVecMatMultExprHelper< typename boost::remove_cv<T>::type >::value };
206  typedef typename IsTVecMatMultExprHelper< typename boost::remove_cv<T>::type >::Type Type;
208  //**********************************************************************************************
209 };
210 //*************************************************************************************************
211 
212 } // namespace blaze
213 
214 #endif