35 #ifndef _BLAZE_MATH_TRAITS_REDUCETRAIT_H_ 36 #define _BLAZE_MATH_TRAITS_REDUCETRAIT_H_ 60 template<
typename,
typename,
size_t... >
struct ReduceTrait;
61 template<
typename,
typename,
typename =
void >
struct TotalReduceTraitEval1;
62 template<
typename,
typename,
typename =
void >
struct TotalReduceTraitEval2;
63 template<
typename,
typename,
size_t,
typename =
void >
struct PartialReduceTraitEval1;
64 template<
typename,
typename,
size_t,
typename =
void >
struct PartialReduceTraitEval2;
71 template<
size_t RF,
typename T,
typename OP >
72 auto evalReduceTrait( T&, OP )
73 ->
typename PartialReduceTraitEval1<T,OP,RF>::Type;
75 template<
typename T,
typename OP >
76 auto evalReduceTrait( T&, OP )
77 ->
typename TotalReduceTraitEval1<T,OP>::Type;
79 template<
size_t RF,
typename T,
typename OP >
80 auto evalReduceTrait(
const T&, OP )
81 ->
typename ReduceTrait<T,OP,RF>::Type;
83 template<
typename T,
typename OP >
84 auto evalReduceTrait(
const T&, OP )
85 ->
typename ReduceTrait<T,OP>::Type;
87 template<
size_t RF,
typename T,
typename OP >
88 auto evalReduceTrait(
const volatile T&, OP )
89 ->
typename ReduceTrait<T,OP,RF>::Type;
91 template<
typename T,
typename OP >
92 auto evalReduceTrait(
const volatile T&, OP )
93 ->
typename ReduceTrait<T,OP>::Type;
151 using Type = decltype( evalReduceTrait<RF...>( std::declval<T&>(), std::declval<OP>() ) );
186 struct TotalReduceTraitEval1
190 using Type =
typename TotalReduceTraitEval2<T,OP>::Type;
205 struct TotalReduceTraitEval2
209 using Type = ElementType_t<T>;
225 struct PartialReduceTraitEval1
229 using Type =
typename PartialReduceTraitEval2<T,OP,RF>::Type;
245 struct PartialReduceTraitEval2
249 using Type = INVALID_TYPE;
Header file for auxiliary alias declarations.
Header file for basic type definitions.
Header file for the Decay type trait.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
typename ReduceTrait< T, OP, RF... >::Type ReduceTrait_t
Auxiliary alias declaration for the ReduceTrait class template.The ReduceTrait_t alias declaration pr...
Definition: ReduceTrait.h:174
Utility type for generic codes.
Base template for the ReduceTrait class.
Definition: ReduceTrait.h:146