FroidurePin¶
- class FroidurePin¶
This page contains the documentation for functionality in
libsemigroups_pybind11
for the Froidure-Pin algorithm. The classFroidurePin
implements the Froidure-Pin algorithm as described in the article "Algorithms for computing finite semigroups" by Veronique Froidure and Jean-Eric Pin.A
FroidurePin
instance is defined by a generating set, and the main method isrun()
, which implements the Froidure-Pin Algorithm. Ifrun()
is invoked andfinished()
returnsTrue
, then the size, the left and right Cayley graphs are determined, and a confluent terminating presentation for the semigroup is known.While
FroidurePin
is not a class the objects returned byFroidurePin
have identical methods, and so we documentFroidurePin
as if it was a class.
Constructors¶
Overloaded function. |
Generators¶
Add a copy of an element to the generators. |
|
Add collection of generators. |
|
Add non-redundant generators in collection. |
|
Copy and add non-redundant generators. |
|
Copy and add a collection of generators. |
|
Returns the number of generators. |
|
Returns the generator with specified index. |
Settings¶
Overloaded function. |
|
Overloaded function. |
|
Overloaded function. |
|
Overloaded function. |
|
Requests the given capacity for elements. |
Membership + comparison¶
Test membership of an element. |
|
Overloaded function. |
|
Returns the sorted index of an element via its index. |
|
Find the position of an element with enumeration if necessary. |
|
Returns the sorted index of an element. |
|
Check equality of words in the generators. |
Accessors¶
Returns an iterator pointing to the first element. |
|
Access element specified by index with bound checks. |
|
Returns the number of elements so far enumerated. |
|
Returns the size. |
|
Access element specified by sorted index with bound checks. |
|
Returns an iterator pointing to the first element (sorted). |
Attributes¶
Check if the semigroup is a monoid. |
|
Check finiteness. |
|
Returns the degree of any and all elements. |
Idempotents¶
Check if an element is an idempotent via its index. |
|
Returns an iterator pointing at the first idempotent. |
|
Returns the number of idempotents. |
Cayley graphs¶
Returns the left Cayley graph |
|
Returns the right Cayley graph |
Factorisation, products, and relations¶
Returns the length of the short-lex least word. |
|
Returns the maximum length of a word in the generators so far computed. |
|
Returns the number of relations that have been found so far. |
|
Overloaded function. |
|
Returns the length of the short-lex least word. |
|
Returns a short-lex least word representing an element given by index. |
|
Returns the total number of relations in the presentation. |
|
Compute a product using the Cayley graph. |
|
Multiply elements via their indices. |
|
Returns an iterator pointing to the first rule (if any). |
|
Convert a word in the generators to an element. |
Prefixes and suffixes¶
Returns the last letter of the element with specified index. |
|
Returns the first letter of the element with specified index. |
|
Returns the index of the longest proper prefix. |
|
Returns the position of the longest proper suffix. |
Running and reporting¶
Enumerate until at least a specified number of elements are found. |
|
Run the algorithm until it finishes. |
|
Run for a specified amount of time. |
|
Run until a nullary predicate returns |
|
Stop running the algorithm (thread-safe). |
|
Check if the runner is dead. |
|
Check if the main algorithm has been run to completion or not. |
|
Check if |
|
Check if it is time to report. |
|
Set the minimum elapsed time between reports. |
|
Report why we stopped. |
|
Check if currently running. |
|
Check if the main algorithm has or should timed out. |
|
Check if the main algorithm has or should stop. |
|
Check if the main algorithm was, or should be, stopped by the nullary
predicate passed as first argument to |