35 #ifndef _BLAZE_MATH_TRAITS_SUBMATRIXTRAIT_H_ 36 #define _BLAZE_MATH_TRAITS_SUBMATRIXTRAIT_H_ 59 template<
typename,
size_t... >
struct SubmatrixTrait;
60 template<
typename,
size_t,
size_t,
size_t,
size_t,
typename =
void >
struct SubmatrixTraitEval1;
61 template<
typename,
size_t,
size_t,
size_t,
size_t,
typename =
void >
struct SubmatrixTraitEval2;
68 template<
size_t I,
size_t J,
size_t M,
size_t N,
typename T >
69 auto evalSubmatrixTrait( T& )
70 ->
typename SubmatrixTraitEval1<T,I,J,M,N>::Type;
72 template<
typename T >
73 auto evalSubmatrixTrait( T& )
74 ->
typename SubmatrixTraitEval2<T,inf,inf,inf,inf>::Type;
76 template<
size_t I,
size_t J,
size_t M,
size_t N,
typename T >
77 auto evalSubmatrixTrait(
const T& )
78 ->
typename SubmatrixTrait<T,I,J,M,N>::Type;
80 template<
typename T >
81 auto evalSubmatrixTrait(
const T& )
82 ->
typename SubmatrixTrait<T>::Type;
84 template<
size_t I,
size_t J,
size_t M,
size_t N,
typename T >
85 auto evalSubmatrixTrait(
const volatile T& )
86 ->
typename SubmatrixTrait<T,I,J,M,N>::Type;
88 template<
typename T >
89 auto evalSubmatrixTrait(
const volatile T& )
90 ->
typename SubmatrixTrait<T>::Type;
142 template<
typename MT
149 using Type = decltype( evalSubmatrixTrait<CSAs...>( std::declval<MT&>() ) );
169 template<
typename MT
180 template<
typename MT
186 struct SubmatrixTraitEval1
190 using Type =
typename SubmatrixTraitEval2<MT,I,J,M,N>::Type;
202 template<
typename MT
208 struct SubmatrixTraitEval2
212 using Type = INVALID_TYPE;
Header file for basic type definitions.
Base template for the SubmatrixTrait class.
Definition: SubmatrixTrait.h:144
typename SubmatrixTrait< MT, CSAs... >::Type SubmatrixTrait_t
Auxiliary alias declaration for the SubmatrixTrait type trait.The SubmatrixTrait_t alias declaration ...
Definition: SubmatrixTrait.h:171
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
Numerical infinity for built-in data types.
Utility type for generic codes.