Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
blaze
math
traits
SMatTDMatAddExprTrait.h
Go to the documentation of this file.
1
//=================================================================================================
20
//=================================================================================================
21
22
#ifndef _BLAZE_MATH_TRAITS_SMATTDMATADDEXPRTRAIT_H_
23
#define _BLAZE_MATH_TRAITS_SMATTDMATADDEXPRTRAIT_H_
24
25
26
//*************************************************************************************************
27
// Includes
28
//*************************************************************************************************
29
30
#include <
blaze/math/expressions/Forward.h
>
31
#include <
blaze/math/typetraits/IsColumnMajorMatrix.h
>
32
#include <
blaze/math/typetraits/IsDenseMatrix.h
>
33
#include <
blaze/math/typetraits/IsRowMajorMatrix.h
>
34
#include <
blaze/math/typetraits/IsSparseMatrix.h
>
35
#include <
blaze/util/InvalidType.h
>
36
#include <
blaze/util/SelectType.h
>
37
#include <
blaze/util/typetraits/IsConst.h
>
38
#include <
blaze/util/typetraits/IsReference.h
>
39
#include <
blaze/util/typetraits/IsVolatile.h
>
40
#include <
blaze/util/typetraits/RemoveCV.h
>
41
#include <
blaze/util/typetraits/RemoveReference.h
>
42
43
44
namespace
blaze {
45
46
//=================================================================================================
47
//
48
// CLASS DEFINITION
49
//
50
//=================================================================================================
51
52
//*************************************************************************************************
62
template
<
typename
MT1
// Type of the left-hand side row-major sparse matrix
63
,
typename
MT2 >
// Type of the right-hand side column-major dense matrix
64
struct
SMatTDMatAddExprTrait
65
{
66
private
:
67
//**********************************************************************************************
69
enum
{ qualified =
IsConst<MT1>::value
||
IsVolatile<MT1>::value
||
IsReference<MT1>::value
||
70
IsConst<MT2>::value
||
IsVolatile<MT2>::value
||
IsReference<MT2>::value
};
72
//**********************************************************************************************
73
74
//**********************************************************************************************
76
typedef
SelectType< IsSparseMatrix<MT1>::value
&&
IsRowMajorMatrix<MT1>::value
&&
77
IsDenseMatrix<MT2>::value
&&
IsColumnMajorMatrix<MT2>::value
78
,
TDMatSMatAddExpr<MT2,MT1>
, INVALID_TYPE > Tmp;
79
80
typedef
typename
RemoveReference< typename RemoveCV<MT1>::Type
>::Type Type1;
81
typedef
typename
RemoveReference< typename RemoveCV<MT2>::Type
>::Type Type2;
83
//**********************************************************************************************
84
85
public
:
86
//**********************************************************************************************
88
typedef
typename
SelectType< qualified, SMatTDMatAddExprTrait<Type1,Type2>
, Tmp >::Type::Type Type;
90
//**********************************************************************************************
91
};
92
//*************************************************************************************************
93
94
}
// namespace blaze
95
96
#endif
Generated on Fri May 24 2013 16:39:56 by
1.8.3.1