FroidurePin¶
-
template<typename TElementType, typename TTraits = FroidurePinTraits<TElementType>>
class FroidurePin : private libsemigroups::detail::BruidhinnTraits<TElementType>, public libsemigroups::FroidurePinBase¶ Defined in
froidure-pin.hpp.The class template FroidurePin implements the Froidure-Pin algorithm as described in the article “Algorithms for computing finite semigroups” by Veronique Froidure and Jean-Eric Pin; see this for more details.
A FroidurePin instance is defined by a generating set, and the main function is run, which implements the Froidure-Pin Algorithm. If run is invoked and finished returns
true, then the size, the left and right Cayley graphs are determined, and a confluent terminating presentation for the semigroup is known.See also
- Example
template <> struct Complexity<int> { constexpr size_t operator()(int) const noexcept { return 0; } }; template <> struct Degree<int> { constexpr size_t operator()(int) const noexcept { return 0; } }; template <> struct IncreaseDegree<int> { int operator()(int x) const noexcept { return x; } }; template <> struct One<int> { constexpr int operator()(int) const noexcept { return 1; } }; template <> struct Product<int> { void operator()(int& xy, int x, int y, size_t = 0) const noexcept { xy = x * y; } }; FroidurePin<int> S({2}); S.size(); // 32 S.number_of_idempotents() // 1 *S.cbegin(); // 2 FroidurePin<uint8_t> T({2, 3}); T.size() // 130 T.number_of_idempotents() // 2 *T.cbegin_idempotents(); // 0 *T.cbegin_idempotents() + 1; // 1
- Template Parameters:
TElementType – the type of the elements in the represented semigroup
TTraits – a traits class holding various adapters used by the implementation (defaults to FroidurePinTraits).
Member types¶
Type of const elements. |
|
Type of element const pointers. |
|
Type of element const references. |
|
Type of the elements. |
|
Type of element references. |
|
Type of the state used for multiplication (if any). |
|
Alias for |
Adapter member types¶
Constructors¶
Default move constructor. |
|
Deleted constructors¶
Deleted. |
|
Deleted. |
Initialisation¶
Factorisation and relations¶
Membership¶
Iterators¶
Virtual functions from FroidurePinBase¶
|
|
|
|
Member functions inherited from FroidurePinBase¶
Type for a left or right Cayley graph. |
|
|
|
|
|
Unsigned integer type. |
|