SchreierSims¶
-
template<size_t
N
, typenameTPointType
= typename SmallestInteger<N>::type, typenameTElementType
= typename NewPermHelper<N>::type, typenameTTraits
= SchreierSimsTraits<N, TPointType, TElementType>>
classSchreierSims
: private libsemigroups::detail::BruidhinnTraits<TElementType>¶ 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
- 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: SmallestInteger<N>::type).TElementType
: the type of the group elements acting onTPointType
(default: NewPermHelper<N>::type)TTraits
: the type of traits object (default: SchreierSimsTraits<N, TPointType, TElementType>)