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