Degree

template<typename TElementType, typename = void>
struct Degree

Defined in adapters.hpp.

Specialisations of this struct should be stateless trivially default constructible with a call operator of signature size_t operator()(TElementType const& x) const (possibly noexcept, inline and/or constexpr also).

The return value of the call operator ought to indicate the degree of a TElementType instance which may or may not depend on the parameter x. The degree of a permutation, for instance, would be the the number of points it acts on, the degree of a matrix is its dimension, and so on. This is used, for example, by SchreierSimsTraits in some member functions to determine whether it is known a priori that a permutation does not belong to the object, because it acts on too many points.

The second template parameter exists for SFINAE in overload resolution.

tparam TElementType

the type of the elements of a semigroup.

Used by:

Example

template <>
struct Degree<BMat8> {
  constexpr inline size_t operator()(BMat8 const&) const noexcept {
    return 8;
  }
};