Rank¶
-
using
libsemigroups::KoniecznyTraits
::
Rank
= ::libsemigroups::Rank<element_type, rank_state_type>¶ Defined in
adapters.hpp
.This type should be default constructible and a call operator of signature
size_t operator()(TElementType const&)
if no additional data is required to compute the rank, or a call operator of signature `size_t operator()(TStateType<TElementType> const&, TElementType const&) if additional data is required.The call operator should return the rank of the semigroup 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\).
\tparam TElementType the type of the semigroup elements. \tparam TStateType the type of the data required to compute ranks of TElementTypes; defaults to \c RankState<TElementType>. \par Used by KoniecznyTraits.