SchreierSims¶
-
template<size_t N, typename TPointType = typename SmallestInteger<N>::type, typename TElementType = LeastPerm<N>, typename TTraits = SchreierSimsTraits<N, TPointType, TElementType>>
class SchreierSims : private libsemigroups::detail::BruidhinnTraits<LeastPerm<N>>¶ Defined in
schreier-sims.hpp
.This class implements a deterministic version of the Schreier-Sims algorithm acting on a relatively small number of points (< 1000).
See also
- Example
SchreierSims<5> S; using Perm = decltype(S)::element_type; S.add_generator(Perm({1, 0, 2, 3, 4})); S.add_generator(Perm({1, 2, 3, 4, 0})); S.size(); // 120
- Template Parameters
N – the largest point not fixed by the permutations in the permutation group to be represented by this.
TPointType – the type of the points acted on (default: the member
type
of SmallestInteger with template parameterN
).TElementType – the type of the group elements acting on
TPointType
(default: the membertype
of LeastPerm with template parameterN
).TTraits – the type of traits object (default: SchreierSimsTraits with template parameters
N
,TPointType
, andTElementType
).
Member types¶
Type of the object containing all points acted on. |
|
Type of the elements. |
|
Type of indices. |
|
Type of the points acted on. |
Adapter types¶
Alias for |
|
Adapter for the degree of an element. |
|
Adapter for testing equality. |
|
Adapter for the inverse of an element. |
|
Adapter for the identity element of the given type. |
|
Adapter for the product of two elements. |
|
Adapter for swapping. |
Constructors¶
Default constructor. |
|
Default move constructor. |
Deleted constructors¶
Deleted. |
|
Deleted. |
|
Deleted. |
Initialisation¶
Add a base point to the stabiliser chain. |
|
Add a generator. |
|
Reset to the trivial group. |
Running¶
Run the Schreier-Sims algorithm. |
Attributes¶
Get a base point. |
|
Get the size of the current base. |
|
Check if any generators have been added so far. |
|
Check if the stabiliser chain is fully enumerated. |
|
Get a generator. |
|
Returns a const reference to the identity. |
|
Get an inversal element. |
|
The number of generators. |
|
The number of strong generators at a given depth. |
|
Check if a point is in the orbit of a basepoint. |
|
Returns the size of the group represented by this. |
|
Get a strong generator. |
|
Get a transversal element. |
Membership¶
Test membership of an element. |
|
Sift an element through the stabiliser chain. |