This page documents the constructors and initialisers for the Kambites 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 Kambites instance as if it had just been constructed; but without necessarily releasing any previous allocated memory.
Functions | |
| Kambites () | |
| Default constructor. | |
| Kambites (congruence_kind knd, Presentation< native_word_type > &&p) | |
| Construct from congruence_kind and Presentation. | |
| Kambites (congruence_kind knd, Presentation< native_word_type > const &p) | |
| Construct from congruence_kind and Presentation. | |
| Kambites (Kambites &&) | |
| Default move constructor. | |
| Kambites (Kambites const &) | |
| Default copy constructor. | |
| Kambites & | init () |
| Re-initialize a Kambites instance. | |
| Kambites & | init (congruence_kind knd, Presentation< native_word_type > &&p) |
| Re-initialize a Kambites instance. | |
| Kambites & | init (congruence_kind knd, Presentation< native_word_type > const &p) |
| Re-initialize a Kambites instance. | |
| Kambites & | operator= (Kambites &&) |
| Default move assignment operator. | |
| Kambites & | operator= (Kambites const &) |
| Default copy assignment operator. | |
| bool | success () const override |
| Check if the small overlap class has been computed and is at least 4. | |
| 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. | |
| void | throw_if_not_C4 () |
| Throws if small_overlap_class isn't at least \(4\). | |
| void | throw_if_not_C4 () const |
| Throws if small_overlap_class isn't at least \(4\) if it is known. | |
| Kambites | ( | ) |
This function default constructs an uninitialised Kambites instance.
|
inline |
This function constructs a Kambites instance representing a congruence of kind knd over the semigroup or monoid defined by the presentation p.
Kambites instances can only be used to compute two-sided congruences, and so the first parameter knd must always be congruence_kind::twosided. The parameter knd is included for uniformity of interface between with KnuthBendix, Kambites, and Congruence.
| knd | the kind (onesided or twosided) of the congruence. |
| p | the presentation. |
| LibsemigroupsException | if p is not valid. |
| LibsemigroupsException | if knd is not twosided. |
|
inline |
This function constructs a Kambites instance representing a congruence of kind knd over the semigroup or monoid defined by the presentation p.
Kambites instances can only be used to compute two-sided congruences, and so the first parameter knd must always be congruence_kind::twosided. The parameter knd is included for uniformity of interface between with KnuthBendix, Kambites, and Congruence.
| knd | the kind (onesided or twosided) of the congruence. |
| p | the presentation. |
| LibsemigroupsException | if p is not valid. |
| LibsemigroupsException | if knd is not twosided. |
| Kambites | ( | Kambites< Word > && | ) |
Default move constructor.
| Kambites | ( | Kambites< Word > const & | ) |
Default copy constructor.
| Kambites & init | ( | ) |
This function puts a Kambites instance back into the state that it would have been in if it had just been newly default constructed.
| Kambites & init | ( | congruence_kind | knd, |
| Presentation< native_word_type > && | p ) |
This function puts a Kambites instance back into the state that it would have been in if it had just been newly constructed from knd and p.
Kambites instances can only be used to compute two-sided congruences, and so the first parameter knd must always be congruence_kind::twosided. The parameter knd is included for uniformity of interface between with KnuthBendix, Kambites, and Congruence.
| knd | the kind (onesided or twosided) of the congruence. |
| p | the presentation. |
| LibsemigroupsException | if p is not valid. |
| LibsemigroupsException | if knd is not twosided. |
|
inline |
This function puts a Kambites instance back into the state that it would have been in if it had just been newly constructed from knd and p.
Kambites instances can only be used to compute two-sided congruences, and so the first parameter knd must always be congruence_kind::twosided. The parameter knd is included for uniformity of interface between with KnuthBendix, Kambites, and Congruence.
| knd | the kind (onesided or twosided) of the congruence. |
| p | the presentation. |
| LibsemigroupsException | if p is not valid. |
| LibsemigroupsException | if knd is not twosided. |
| Kambites & operator= | ( | Kambites< Word > && | ) |
Default move assignment operator.
| Kambites & operator= | ( | Kambites< Word > const & | ) |
Default copy assignment operator.
|
inlinenodiscardoverride |
This function calls finished and checks whether or not the small_overlap_class is at least \(4\). This function can be used to check whether or not the functions reduce and contains can be used.
|
inline |
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 Kambites instance).
| Iterator1 | the type of first argument first. |
| Iterator2 | the type of second argument last. |
| first | iterator pointing at the first letter of the word. |
| last | iterator pointing one beyond the last letter of the word. |
| LibsemigroupsException | if any letter in the range from first to last is out of bounds. |
| void throw_if_not_C4 | ( | ) |
This function throws an exception if the small_overlap_class is not at least \(4\).
| LibsemigroupsException | if small_overlap_class is not at least \(4\). |
| void throw_if_not_C4 | ( | ) | const |
This function throws an exception if the small_overlap_class is known and not at least \(4\).
| LibsemigroupsException | if small_overlap_class is known and not at least \(4\). |