Elements

This page contains an overview summary of the functionality in libsemigroups for defining elements of semigroups.

HPCombi

If 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 HPCombi documentation.

The struct templates:

can be used to get the smallest/fastest type representing a boolean matrix, permutation, partial permutation, or transformation, and can be used independently of whether or not libsemigroups is compiled with HPCombi support enabled.

Partitioned binary relations and bipartitions