SchreierSims¶
-
template<size_t N, typename TPointType = typename SmallestInteger<N>::type, typename TElementType = typename NewPermHelper<N>::type, typename TTraits = SchreierSimsTraits<N, TPointType, TElementType>>
class SchreierSims : private libsemigroups::detail::BruidhinnTraits<typename NewPermHelper<N>::type>¶ 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
- tparam N
the largest point not fixed by the permutations in the permutation group to be represented by this.
- tparam TPointType
the type of the points acted on (default: SmallestInteger<N>::type).
- tparam TElementType
the type of the group elements acting on
TPointType
(default: NewPermHelper<N>::type)- tparam TTraits
the type of traits object (default: SchreierSimsTraits<N, TPointType, TElementType>)