libsemigroups  v3.0.0
C++ library for semigroups and monoids
Loading...
Searching...
No Matches
Rank< Element, State, typename >
template<typename Element, typename State = RankState<Element>, typename = void>
struct libsemigroups::Rank< Element, State, typename >

Defined in adapters.hpp.

This type should be default constructible and a call operator of signature size_t operator()(Element const&) if no additional data is required to compute the rank, or a call operator of signature size_t operator()(State<Element> const&, Element const&) if additional data is required.

The call operator should return the rank of the element given as argument. This must satisfy the following properties:

  • \(\operatorname{rank}\) should agree with the \(D\)-order on the semigroup; that is, if \(D_x \leq D_y\), then \(\operatorname{rank}(x) \leq \operatorname{rank}(y)\),
  • if \(D_x \leq D_y\) and \(\operatorname{rank}(x) = \operatorname{rank}(y)\), then \(D_x = D_y\).
Template Parameters
Elementthe type of elements.
Statethe type of the data required to compute ranks of Elements; defaults to RankState<Element>.

The third template parameter exists for SFINAE.

Used by:

The documentation for this struct was generated from the following file: