CongruenceByPairs¶
-
template<typename
TElementType
, typenameTElementHash
= Hash<TElementType>, typenameTElementEqual
= EqualTo<TElementType>, typenameTElementProduct
= Product<TElementType>, typenameTFroidurePinType
= FroidurePin<TElementType>>
classCongruenceByPairs
: public libsemigroups::CongruenceInterface, protected libsemigroups::detail::BruidhinnTraits<TElementType>¶ 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
congruence_type 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)::element_type>; P cong1(right, S); cong1.nr_classes(); // 11804 P cong2(left, S); cong2.nr_classes(); // 11804 P cong3(twosided, S); cong3.nr_classes(); // 11804