This page contains an overview summary of the functionality in
libsemigroups for defining elements of semigroups.
libsemigroups is compiled with HPCombi support enabled (see
Installation for details), then the types defined in HPCombi (which use
the SSE and AVX instruction sets for very fast manipulation of these types) can
be used with the algorithms in
libsemigroups; for further details see the
The following helpers:
can be used to get the smallest/fastest type representing a permutation,
partial permutation, or transformation, and can be used independently of
whether or not
libsemigroups is compiled with HPCombi support enabled.