libsemigroups  v3.0.0
C++ library for semigroups and monoids
Loading...
Searching...
No Matches

This page contains the documentation of the various member functions of the Kambites class that can be used to access the state of an instance.

Those functions with the prefix current_ do not perform any further enumeration.

Functions

size_t small_overlap_class ()
 Get the small overlap class.
 
size_t small_overlap_class () const noexcept
 Get the current value of the small overlap class.
 
auto const & ukkonen () noexcept
 Returns the suffix tree used to compute pieces.
 

Function Documentation

◆ small_overlap_class() [1/2]

template<typename Word = detail::MultiStringView>
size_t small_overlap_class ( )
nodiscard

If \(S\) is a finitely presented semigroup with generating set \(A\), then a word \(w\) over \(A\) is a piece if \(w\) occurs as a factor in at least two of the relations defining \(S\) or if it occurs as a factor of one relation in two different positions (possibly overlapping).

A finitely presented semigroup \(S\) satisfies the condition \(C(n)\), for a positive integer \(n\) if the minimum number of pieces in any factorisation of a word occurring as the left or right hand side of a relation of \(S\) is at least \(n\).

Returns
The greatest positive integer \(n\) such that the finitely semigroup represented by this satisfies the condition \(C(n)\); or POSITIVE_INFINITY if no word occurring in a relation can be written as a product of pieces.
Exceptions
This function guarantees not to throw a LibsemigroupsException.
Complexity
The current implementation has complexity no worse than \(O(m ^ 3)\) where \(m\) is the sum of the lengths of the words occurring in the relations of the semigroup.
Warning
The member functions contains and reduce only work if the return value of this function is at least \(4\).

◆ small_overlap_class() [2/2]

template<typename Word = detail::MultiStringView>
size_t small_overlap_class ( ) const
nodiscardnoexcept

See small_overlap_class() for more details.

Returns
The small overlap class if known or UNDEFINED otherwise.
Exceptions
This function is noexcept and is guaranteed never to throw.

◆ ukkonen()

template<typename Word = detail::MultiStringView>
auto const & ukkonen ( )
inlinenodiscardnoexcept

This function returns a const reference to the generalised suffix tree Ukkonoen object containing the relation words of a Kambites object, that is used to determine the pieces, and decompositions of the relation words.

Returns
A const reference to a Ukkonen object.
Exceptions
This function is noexcept and is guaranteed never to throw.