libsemigroups  v3.0.0
C++ library for semigroups and monoids
Loading...
Searching...
No Matches
Schreier-Sims

This page contains documentation for the libsemigroups implementation of the Schreier-Sims algorithm, as described in Section 4.4.2 of [31] and as implemented in the kernel module of the Digraphs package [8] for GAP in C:

https://github.com/digraphs/Digraphs/blob/main/src/schreier-sims.c

by Wilf A. Wilson.

It also contains the documentation of a backtrack search for computing the intersection of two permutations given by the Schreier-Sims algorithm by Reinis Cirpons.

Namespaces

namespace  libsemigroups::schreier_sims
 Namespace for SchreierSims helper functions.
 

Classes

class  SchreierSims< N, Point, Element, Traits >
 A deterministic version of the Schreier-Sims algorithm acting on a small number of points. More...
 
struct  SchreierSimsTraits< N, Point, Element >
 Traits class for use with the class template SchreierSims. More...
 

Functions

template<size_t N, typename Point, typename Element, typename Traits>
std::string to_human_readable_repr (SchreierSims< N, Point, Element, Traits > const &S, size_t max_width=72)
 Returns a human readable representation of a SchreierSims object.
 

Function Documentation

◆ to_human_readable_repr()

template<size_t N, typename Point, typename Element, typename Traits>
std::string to_human_readable_repr ( SchreierSims< N, Point, Element, Traits > const & S,
size_t max_width = 72 )
nodiscard

This function returns a human readable representation of a SchreierSims object.

Template Parameters
Nthe largest point not fixed by the permutations in the permutation groups.
Parameters
Sthe SchreierSims object.
max_widththe maximum width of the returned representation (default: 72).