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

This file contains functionality for various types used in libsemigroups.

Classes

struct  SmallestInteger< N >
 Type giving the smallest unsigned integer type that can represent a template. More...
 

Typedefs

template<typename Given, typename Expected>
using enable_if_is_same = std::enable_if_t<std::is_same_v<Given, Expected>, Expected>
 Alias equal to the second template parameter if both template parameters are equal.
 
using letter_type = size_t
 Type for the index of a generator of a semigroup.
 
using relation_type = std::pair<word_type, word_type>
 Type for a pair of word_type (a relation) of a semigroup.
 
using word_type = std::vector<letter_type>
 Type for a word over the generators of a semigroup.
 

Enumerations

enum class  congruence_kind { onesided = 1 , twosided = 2 }
 Enum to indicate the sided-ness of a congruence. More...
 
enum class  tril { FALSE = 0 , TRUE = 1 , unknown = 2 }
 Enum to indicate true, false or not currently knowable. More...
 

Typedef Documentation

◆ enable_if_is_same

template<typename Given, typename Expected>
using enable_if_is_same = std::enable_if_t<std::is_same_v<Given, Expected>, Expected>

Alias equal to the second template parameter if both template parameters are equal.

Enumeration Type Documentation

◆ congruence_kind

enum class congruence_kind
strong

The values in this enum can be used to indicate that a congruence should be 2-sided, left, or right.

Enumerator
onesided 

Value representing a one-sided congruence.

twosided 

Value representing a two-sided congruence.

◆ tril

enum class tril
strong

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

Enumerator
FALSE 

Value representing false.

TRUE 

Value representing true.

unknown 

Value representing unknown (either true or false).