27#ifndef _H_GRB_TYPE_TRAITS
28#define _H_GRB_TYPE_TRAITS
46 template<
typename T >
54 static const constexpr bool value =
false;
65 template<
typename T >
73 static const constexpr bool value =
false;
84 template<
typename T >
92 static const constexpr bool value =
false;
103 template<
typename T >
111 static const constexpr bool value =
false;
129 template<
typename T >
160 template<
typename T,
typename =
void >
164 "Template argument to grb::is_idempotent must be an operator or a monoid!" );
167 static const constexpr bool value =
false;
178 template<
typename Mono
id >
181 typename std::enable_if< is_monoid< Monoid >::value, void >::type
183 static const constexpr bool value =
201 template<
typename T,
typename =
void >
205 "Template argument should be an ALP binary operator or monoid." );
208 static const constexpr bool value =
false;
219 template<
typename Mono
id >
222 typename std::enable_if< is_monoid< Monoid >::value, void >::type
225 "Malformed ALP monoid encountered" );
226 static const constexpr bool value =
true;
239 template<
typename T,
typename =
void >
243 "Template argument should be an ALP binary operator or monoid." );
246 static const constexpr bool value =
false;
257 template<
typename Mono
id >
260 typename std::enable_if< is_monoid< Monoid >::value, void >::type
263 static const constexpr bool value =
278 template<
typename T >
282 "Template argument to grb::has_immutable_nonzeroes must be a "
286 static const constexpr bool value =
false;
304 template<
typename OP >
307 "Argument to internal::maybe_noop must be an operator."
309 static const constexpr bool value =
false;
A generalised monoid.
Definition: monoid.hpp:54
The ALP/GraphBLAS namespace.
Definition: graphblas.hpp:452
Used to inspect whether a given semiring has immutable nonzeroes under addition.
Definition: type_traits.hpp:279
static const constexpr bool value
Whether T a semiring where nonzeroes are immutable.
Definition: type_traits.hpp:286
Used to inspect whether a given operator or monoid is associative.
Definition: type_traits.hpp:202
static const constexpr bool value
Whether T is associative.
Definition: type_traits.hpp:208
Used to inspect whether a given operator or monoid is commutative.
Definition: type_traits.hpp:240
static const constexpr bool value
Whether T is commutative.
Definition: type_traits.hpp:246
Used to inspect whether a given type is an ALP/GraphBLAS container.
Definition: type_traits.hpp:47
static const constexpr bool value
Whether T is an ALP/GraphBLAS container.
Definition: type_traits.hpp:54
Used to inspect whether a given operator or monoid is idempotent.
Definition: type_traits.hpp:161
static const constexpr bool value
Wheter T is idempotent.
Definition: type_traits.hpp:167
Used to inspect whether a given type is an ALP monoid.
Definition: type_traits.hpp:85
static const constexpr bool value
Whether T is an ALP monoid.
Definition: type_traits.hpp:92
Used to inspect whether a given type is an ALP/GraphBLAS object.
Definition: type_traits.hpp:130
static const constexpr bool value
Whether the given time is an ALP/GraphBLAS object.
Definition: type_traits.hpp:135
Used to inspect whether a given type is an ALP operator.
Definition: type_traits.hpp:104
static const constexpr bool value
Whether T is an ALP operator.
Definition: type_traits.hpp:111
Used to inspect whether a given type is an ALP semiring.
Definition: type_traits.hpp:66
static const constexpr bool value
Whether T is an ALP semiring.
Definition: type_traits.hpp:73