Types

libsemigroups contains some type aliases, which are described in this section.

enum libsemigroups::tril

The values in this enum can be used to indicate a result is true, false, or not currently knowable.

Values:

enumerator FALSE = 0

Value representing false.

enumerator TRUE = 1

Value representing true.

enumerator unknown = 2

Value representing unknown (either true or false).

using libsemigroups::letter_type = size_t

Type for the index of a generator of a semigroup.

using libsemigroups::word_type = std::vector<letter_type>

Type for a word over the generators of a semigroup.

using libsemigroups::relation_type = std::pair<word_type, word_type>

Type for a pair of word_type (a relation) of a semigroup.

template<size_t N>
struct SmallestInteger

Provides a type giving the smallest unsigned integer type capable of representing the template N.

The type SmallestInteger::type contains the smallest (in terms of memory required) unsigned integer type which can represent the non-negative integer N.