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

This page documents the constructors and initialisers for the Congruence class.

Every constructor (except the move + copy constructors, and the move and copy assignment operators) has a matching init function with the same signature that can be used to re-initialize a Congruence instance as if it had just been constructed; but without necessarily releasing any previous allocated memory.

Functions

 Congruence ()
 Default constructor.
 
 Congruence (Congruence &&)
 Move constructor.
 
 Congruence (Congruence const &)
 Copy constructor.
 
 Congruence (congruence_kind knd, Presentation< Word > const &p)
 Construct from congruence_kind and Presentation.
 
Congruenceinit ()
 Re-initialize a Congruence instance.
 
Congruenceinit (congruence_kind knd, Presentation< Word > const &p)
 Re-initialize a Congruence instance.
 
Congruenceoperator= (Congruence &&)
 Move assignment operator.
 
Congruenceoperator= (Congruence const &)
 Copy assignment operator.
 
template<typename Iterator1, typename Iterator2>
void throw_if_letter_not_in_alphabet (Iterator1 first, Iterator2 last) const
 Throws if any letter in a range is out of bounds.
 

Function Documentation

◆ Congruence() [1/4]

template<typename Word>
Congruence ( )

This function default constructs an uninitialised Congruence instance.

◆ Congruence() [2/4]

template<typename Word>
Congruence ( Congruence< Word > && )

Move constructor.

◆ Congruence() [3/4]

template<typename Word>
Congruence ( Congruence< Word > const & )

Copy constructor.

◆ Congruence() [4/4]

template<typename Word>
Congruence ( congruence_kind knd,
Presentation< Word > const & p )
inline

This function constructs a Congruence instance representing a congruence of kind knd over the semigroup or monoid defined by the presentation p.

Parameters
kndthe kind (onesided or twosided) of the congruence.
pthe presentation.
Exceptions
LibsemigroupsExceptionif p is not valid.

◆ init() [1/2]

template<typename Word>
Congruence & init ( )

This function puts a Congruence instance back into the state that it would have been in if it had just been newly default constructed.

Returns
A reference to *this.
Exceptions
This function guarantees not to throw a LibsemigroupsException.

◆ init() [2/2]

template<typename Word>
Congruence & init ( congruence_kind knd,
Presentation< Word > const & p )

This function puts a Congruence instance back into the state that it would have been in if it had just been newly constructed from knd and p.

Parameters
kndthe kind (onesided or twosided) of the congruence.
pthe presentation.
Returns
A reference to *this.
Exceptions
LibsemigroupsExceptionif p is not valid.

◆ operator=() [1/2]

template<typename Word>
Congruence & operator= ( Congruence< Word > && )

Move assignment operator.

◆ operator=() [2/2]

template<typename Word>
Congruence & operator= ( Congruence< Word > const & )

Copy assignment operator.

◆ throw_if_letter_not_in_alphabet()

template<typename Word>
template<typename Iterator1, typename Iterator2>
void throw_if_letter_not_in_alphabet ( Iterator1 first,
Iterator2 last ) const

This function throws a LibsemigroupsException if any value pointed at by an iterator in the range first to last is out of bounds (i.e. does not belong to the alphabet of the presentation used to construct the Congruence instance).

Template Parameters
Iterator1the type of first argument first.
Iterator2the type of second argument last.
Parameters
firstiterator pointing at the first letter of the word.
lastiterator pointing one beyond the last letter of the word.
Exceptions
LibsemigroupsExceptionif any letter in the range from first to last is out of bounds.