CongruenceByPairs¶
-
template<typename TFroidurePinType>
class CongruenceByPairs : public libsemigroups::CongruenceInterface, protected libsemigroups::detail::BruidhinnTraits<TFroidurePinType::element_type>¶ Defined in
cong-pair.hpp
.This class contains an implementation of a brute force breadth first search algorithm for computing left, right, and 2-sided congruences on semigroups and monoids.
This page contains a summary of the member functions of the class CongruenceByPairs, and related things in
libsemigroups
.See also
congruence_kind and tril.
- Example
using namespace libsemigroups; auto rg = ReportGuard(); using Transf = typename TransfHelper<8>::type; FroidurePin<Transf> S({Transf({7, 3, 5, 3, 4, 2, 7, 7}), Transf({1, 2, 4, 4, 7, 3, 0, 7}), Transf({0, 6, 4, 2, 2, 6, 6, 4}), Transf({3, 6, 3, 4, 0, 6, 0, 7})}); using P = CongruenceByPairs<decltype(S)>; P cong1(right, S); cong1.number_of_classes(); // 11804 P cong2(left, S); cong2.number_of_classes(); // 11804 P cong3(twosided, S); cong3.number_of_classes(); // 11804
Aliases¶
No doc. |
|
No doc. |
|
No doc. |
|
Type for indices of congruence class indices. |
|
Type for a |
|
The type of a const reference to an element_type. |
|
The type of elements over which an instance of |
|
No doc. |
|
Type for a |
|
Type for non-trivial classes. |
|
The type of a reference to an element_type. |
|
No doc. |
Constructors¶
A default copy constructor. |
|
A default move constructor. |
|
Construct a |
|
|
Construct a |
|
No doc. |
Deleted constructors¶
A |
|
A |
|
A |
Member functions inherited from CongruenceInterface¶
|
Add a generating pair to the congruence. |
Add a generating pair to the congruence. |
|
Returns a const iterator pointing to the first generating pair. |
|
Returns a const iterator pointing to the first non-singleton class. |
|
Returns a const iterator pointing one-after-the-end of the last generating pair. |
|
Returns a const iterator pointing one-past-the-end of the last non-singleton class. |
|
Get a canonical representative of the |
|
Check if a pair of words is known to belong to the congruence. |
|
Check if a pair of words belongs to the congruence. |
|
Check if the congruence was constructed from a |
|
Check if the congruence was constructed from a |
|
Check if the quotient semigroup has been computed. |
|
Deterministically check if the quotient is finite. |
|
Deterministically check if the quotient is infinite. |
|
The handedness of the congruence (left, right, or 2-sided). |
|
Compare the indices of the classes containing two words. |
|
Returns a shared pointer to the non-trivial classes. |
|
Compute the number of classes in the congruence. |
|
The number of generating pairs. |
|
The number of generators. |
|
The number of non-singleton classes. |
|
Get the parent |
|
Get the parent |
|
Returns a semigroup represented as an instance of a derived class of |
|
Set the number of generators of the congruence. |
|
Convert a word into the index of the class containing it. |
Member functions inherited from Runner¶
Check if the runner is dead. |
|
Check if |
|
Stop |
|
Check if it is time to report. |
|
Get the minimum elapsed time between reports. |
|
Set the minimum elapsed time between reports. |
|
Set the minimum elapsed time between reports. |
|
Report why |
|
Run until |
|
Run for a specified amount of time. |
|
Run for a specified amount of time. |
|
Run until a nullary predicate returns |
|
Run until a nullary predicate returns |
|
Check if currently running. |
|
Check if the runner is currently running for a particular length of time. |
|
Check if the runner is currently running until a nullary predicate returns |
|
Check if |
|
Check if the runner is stopped. |
|
Check if the runner was, or should, stop because of the argument for |
|
Check if the amount of time passed to |