Constructors¶
This page contains information about the constructors for the ToddCoxeter
class.
-
libsemigroups::congruence::ToddCoxeter::ToddCoxeter(ToddCoxeter const &that)¶
Copy constructor.
Constructs a complete copy of
that
, including all of the settings, table, defining relations, and generating pairs.- Parameters
that – the ToddCoxeter instance to copy.
- Throws
(None) – This function guarantees not to throw a
LibsemigroupsException
.
-
explicit libsemigroups::congruence::ToddCoxeter::ToddCoxeter(congruence_kind knd)¶
Construct from kind (left/right/2-sided).
This constructor creates a new ToddCoxeter instance representing a left, right, or two-sided congruence specified by the given congruence_kind.
- Parameters
knd – the handedness (left/right/2-sided) of the congruence
- Throws
(None) – This function guarantees not to throw a
LibsemigroupsException
.
-
template<typename T>
inline libsemigroups::congruence::ToddCoxeter::ToddCoxeter(congruence_kind knd, T const &S)¶ Construct from kind (left/right/2-sided) and FroidurePin or FpSemigroupInterface.
This constructor creates a new ToddCoxeter instance representing a left, right, or two-sided congruence over the semigroup represented by a FroidurePin object or instance of a class derived from FpSemigroupInterface.
Warning
The parameter
S
is copied, this might be expensive, use a std::shared_ptr to avoid the copy!- Template Parameters
T – a type derived from FroidurePinBase or FpSemigroupInterface
- Parameters
knd – the handedness (left/right/2-sided) of the congruence
S – the underlying semigroup of the congruence.
- Throws
(None) – This function guarantees not to throw a
LibsemigroupsException
.
-
libsemigroups::congruence::ToddCoxeter::ToddCoxeter(congruence_kind knd, ToddCoxeter &tc)¶
Construct from kind (left/right/2-sided) and ToddCoxeter.
This constructor creates a new ToddCoxeter instance representing a left, right, or two-sided congruence over the quotient semigroup represented by a ToddCoxeter instance.
- Parameters
knd – the handedness (left/right/2-sided) of the congruence
tc – the ToddCoxeter representing the underlying semigroup
- Throws
LibsemigroupsException – if
tc
is a left, or right, congruence, andknd
is not left, or not right, respectively.
-
libsemigroups::congruence::ToddCoxeter::ToddCoxeter(congruence_kind knd, fpsemigroup::KnuthBendix &kb)¶
Construct from kind (left/right/2-sided) and KnuthBendix.
A constructor that creates a new ToddCoxeter instance representing a left, right, or two-sided congruence over the semigroup represented by a fpsemigroup::KnuthBendix instance.
- Parameters
knd – the handedness (left/right/2-sided) of the congruence
kb – the KnuthBendix representing the underlying semigroup
- Throws
(None) – This function guarantees not to throw a
LibsemigroupsException
.
-
libsemigroups::congruence::ToddCoxeter::ToddCoxeter(congruence_kind knd, fpsemigroup::ToddCoxeter &tc)¶
Construct from kind (left/right/2-sided) and ToddCoxeter.
This constructor creates a new ToddCoxeter instance representing a left, right, or two-sided congruence over the semigroup represented by a libsemigroups::fpsemigroup::ToddCoxeter instance.
- Parameters
knd – the handedness (left/right/2-sided) of the congruence
tc – the ToddCoxeter representing the underlying semigroup
- Throws
(None) – This function guarantees not to throw a
LibsemigroupsException
.
Construct from kind (left/right/2-sided), shared pointer to FroidurePinBase, and options.
This constructor creates a new ToddCoxeter instance representing a left, right, or two-sided congruence over the semigroup represented by a shared pointer to a FroidurePin object.
- Parameters
knd – the type of the congruence being constructed
fp – a std::shared_ptr to a FroidurePinBase, this parameter is not copied by this constructor.
p – the options::froidure_pin to use (default: options::froidure_pin::use_cayley_graph).
- Throws
(None) – This function guarantees not to throw a
LibsemigroupsException
.