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, and knd 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.

libsemigroups::congruence::ToddCoxeter::ToddCoxeter(congruence_kind knd, std::shared_ptr<FroidurePinBase> fp, options::froidure_pin p = options::froidure_pin::use_cayley_graph)

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
Throws

(None) – This function guarantees not to throw a LibsemigroupsException.