YieldsStrictlyTriangular.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_TYPETRAITS_YIELDSSTRICTLYTRIANGULAR_H_
36 #define _BLAZE_MATH_TYPETRAITS_YIELDSSTRICTLYTRIANGULAR_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
46 
47 
48 namespace blaze {
49 
50 //=================================================================================================
51 //
52 // CLASS DEFINITION
53 //
54 //=================================================================================================
55 
56 //*************************************************************************************************
67 template< typename OP, typename MT, typename... MTs >
69  : public BoolConstant< YieldsStrictlyLower_v<OP,MT,MTs...> || YieldsStrictlyUpper_v<OP,MT,MTs...> >
70 {};
71 //*************************************************************************************************
72 
73 
74 //*************************************************************************************************
79 template< typename OP, typename MT, typename... MTs >
80 struct YieldsStrictlyTriangular< const OP, MT, MTs... >
81  : public YieldsStrictlyTriangular<OP,MT,MTs...>
82 {};
84 //*************************************************************************************************
85 
86 
87 //*************************************************************************************************
92 template< typename OP, typename MT, typename... MTs >
93 struct YieldsStrictlyTriangular< volatile OP, MT, MTs... >
94  : public YieldsStrictlyTriangular<OP,MT,MTs...>
95 {};
97 //*************************************************************************************************
98 
99 
100 //*************************************************************************************************
105 template< typename OP, typename MT, typename... MTs >
106 struct YieldsStrictlyTriangular< const volatile OP, MT, MTs... >
107  : public YieldsStrictlyTriangular<OP,MT,MTs...>
108 {};
110 //*************************************************************************************************
111 
112 
113 //*************************************************************************************************
126 template< typename OP, typename MT, typename... MTs >
127 constexpr bool YieldsStrictlyTriangular_v = YieldsStrictlyTriangular<OP,MT,MTs...>::value;
128 //*************************************************************************************************
129 
130 } // namespace blaze
131 
132 #endif
constexpr bool YieldsStrictlyTriangular_v
Auxiliary variable template for the YieldsStrictlyTriangular type trait.The YieldsStrictlyTriangular_...
Definition: YieldsStrictlyTriangular.h:127
Header file for the YieldsStrictlyLower type trait.
Generic wrapper for a compile time constant integral value.The IntegralConstant class template repres...
Definition: IntegralConstant.h:71
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
Header file for the YieldsStrictlyUpper type trait.
Compile time check for operations on matrices.This type trait tests whether or not the given operatio...
Definition: YieldsStrictlyTriangular.h:68
Header file for the IntegralConstant class template.