Blaze 3.9
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
48namespace blaze {
49
50//=================================================================================================
51//
52// CLASS DEFINITION
53//
54//=================================================================================================
55
56//*************************************************************************************************
67template< typename OP, typename MT, typename... MTs >
69 : public BoolConstant< YieldsStrictlyLower_v<OP,MT,MTs...> || YieldsStrictlyUpper_v<OP,MT,MTs...> >
70{};
71//*************************************************************************************************
72
73
74//*************************************************************************************************
79template< typename OP, typename MT, typename... MTs >
80struct YieldsStrictlyTriangular< const OP, MT, MTs... >
81 : public YieldsStrictlyTriangular<OP,MT,MTs...>
82{};
84//*************************************************************************************************
85
86
87//*************************************************************************************************
92template< typename OP, typename MT, typename... MTs >
93struct YieldsStrictlyTriangular< volatile OP, MT, MTs... >
94 : public YieldsStrictlyTriangular<OP,MT,MTs...>
95{};
97//*************************************************************************************************
98
99
100//*************************************************************************************************
105template< typename OP, typename MT, typename... MTs >
106struct YieldsStrictlyTriangular< const volatile OP, MT, MTs... >
107 : public YieldsStrictlyTriangular<OP,MT,MTs...>
108{};
110//*************************************************************************************************
111
112
113//*************************************************************************************************
126template< typename OP, typename MT, typename... MTs >
127constexpr bool YieldsStrictlyTriangular_v = YieldsStrictlyTriangular<OP,MT,MTs...>::value;
128//*************************************************************************************************
129
130} // namespace blaze
131
132#endif
Header file for the IntegralConstant class template.
Header file for the YieldsStrictlyLower type trait.
Header file for the YieldsStrictlyUpper type trait.
constexpr bool YieldsStrictlyTriangular_v
Auxiliary variable template for the YieldsStrictlyTriangular type trait.
Definition: YieldsStrictlyTriangular.h:127
Generic wrapper for a compile time constant integral value.
Definition: IntegralConstant.h:74
Compile time check for operations on matrices.
Definition: YieldsStrictlyTriangular.h:70