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

Defined in cong-common-helpers.hpp.

This page contains the documentation of the functions reduce_no_run_no_checks; reduce_no_run; reduce_no_checks; and reduce which can be invoked with a variety of different argument types.

These helper functions can be applied to objects of the types:

Functions with the suffix _no_run do not perform any enumeration of the object representing a congruence; and those with the suffix _no_checks do not check that the input words are valid.

Functions

template<typename Thing>
Thing::native_word_type reduce (Thing const &thing, char const *w)
 Reduce a word (string literal).
 
template<typename Thing, typename Int>
Thing::native_word_type reduce (Thing const &thing, std::initializer_list< Int > const &w)
 Reduce a word (std::initializer_list).
 
template<typename Thing>
Thing::native_word_type reduce (Thing const &thing, typename Thing::native_word_type const &w)
 Reduce a word.
 
template<typename Thing>
Thing::native_word_type reduce_no_checks (Thing const &thing, char const *w)
 Reduce a word (string literal).
 
template<typename Thing, typename Int>
Thing::native_word_type reduce_no_checks (Thing const &thing, std::initializer_list< Int > const &w)
 Reduce a word (std::initializer_list).
 
template<typename Thing>
Thing::native_word_type reduce_no_checks (Thing const &thing, typename Thing::native_word_type const &w)
 Reduce a word with no checks.
 
template<typename Thing>
Thing::native_word_type reduce_no_run (Thing const &thing, char const *w)
 Reduce a word (string literal).
 
template<typename Thing, typename Int>
Thing::native_word_type reduce_no_run (Thing const &thing, std::initializer_list< Int > const &w)
 Reduce a word (std::initializer_list).
 
template<typename Thing>
Thing::native_word_type reduce_no_run (Thing const &thing, typename Thing::native_word_type const &w)
 Reduce a word with no enumeration.
 
template<typename Thing>
Thing::native_word_type reduce_no_run_no_checks (Thing const &thing, char const *w)
 Reduce a word (string literal).
 
template<typename Thing, typename Int>
Thing::native_word_type reduce_no_run_no_checks (Thing const &thing, std::initializer_list< Int > const &w)
 Reduce a word (std::initializer_list).
 
template<typename Thing>
Thing::native_word_type reduce_no_run_no_checks (Thing const &thing, typename Thing::native_word_type const &w)
 Reduce a word with no enumeration or checks.
 

Function Documentation

◆ reduce() [1/3]

template<typename Thing>
Thing::native_word_type reduce ( Thing const & thing,
char const * w )
nodiscard

Defined in cong-common-helpers.hpp.

See reduce for details.

◆ reduce() [2/3]

template<typename Thing, typename Int>
Thing::native_word_type reduce ( Thing const & thing,
std::initializer_list< Int > const & w )
nodiscard
Template Parameters
Intmust satisfy std::integral_type_v<Int>.

Defined in cong-common-helpers.hpp.

See reduce for details.

◆ reduce() [3/3]

template<typename Thing>
Thing::native_word_type reduce ( Thing const & thing,
typename Thing::native_word_type const & w )
nodiscard

Defined in cong-common-helpers.hpp.

This function returns a reduced word equivalent to the input word w in the congruence represented by thing. This function triggers a full enumeration of thing. The output word is a normal form for the input word.

Template Parameters
Thingthe type of the first parameter must be one of Kambites, KnuthBendix, ToddCoxeter, or Congruence.
Parameters
thingthe object to reduce words in.
wthe word to reduce.
Returns
An irreducible word equivalent to w.
Exceptions
LibsemigroupsExceptionif any of the values pointed at by the iterators is out of range, i.e. they do not belong to presentation().alphabet() and Presentation::validate_word throws.

◆ reduce_no_checks() [1/3]

template<typename Thing>
Thing::native_word_type reduce_no_checks ( Thing const & thing,
char const * w )
nodiscard

Defined in cong-common-helpers.hpp.

See reduce_no_checks for details.

◆ reduce_no_checks() [2/3]

template<typename Thing, typename Int>
Thing::native_word_type reduce_no_checks ( Thing const & thing,
std::initializer_list< Int > const & w )
nodiscard

Defined in cong-common-helpers.hpp.

Template Parameters
Intmust satisfy std::integral_type_v<Int>.

See reduce_no_checks for details.

◆ reduce_no_checks() [3/3]

template<typename Thing>
Thing::native_word_type reduce_no_checks ( Thing const & thing,
typename Thing::native_word_type const & w )
nodiscard

Defined in cong-common-helpers.hpp.

This function returns a reduced word equivalent to the input word w in the congruence represented by thing. This function triggers a full enumeration of thing. The output word is a normal form for the input word.

Template Parameters
Thingthe type of the first parameter must be one of Kambites, KnuthBendix, ToddCoxeter, or Congruence.
Parameters
thingthe object to reduce words in.
wthe word to reduce.
Returns
An irreducible word equivalent to w.
Warning
This function does not check that the arguments are valid. In particular, it is assumed that every value pointed at by the iterators belongs to presentation().alphabet().

◆ reduce_no_run() [1/3]

template<typename Thing>
Thing::native_word_type reduce_no_run ( Thing const & thing,
char const * w )
nodiscard

Defined in cong-common-helpers.hpp.

See reduce_no_run for details.

◆ reduce_no_run() [2/3]

template<typename Thing, typename Int>
Thing::native_word_type reduce_no_run ( Thing const & thing,
std::initializer_list< Int > const & w )
nodiscard

Defined in cong-common-helpers.hpp.

Template Parameters
Intmust satisfy std::integral_type_v<Int>.

See reduce_no_run for details.

◆ reduce_no_run() [3/3]

template<typename Thing>
Thing::native_word_type reduce_no_run ( Thing const & thing,
typename Thing::native_word_type const & w )
nodiscard

Defined in cong-common-helpers.hpp.

This function returns a reduced word equivalent to the input word w in the congruence represented by thing. This function triggers no enumeration of thing. The word output by this function is equivalent to the input word in the congruence. If thing is finished, then the output word is a normal form for the input word. If thing is not finished, then it might be that equivalent input words produce different output words.

Template Parameters
Thingthe type of the first parameter must be one of Kambites, KnuthBendix, ToddCoxeter, or Congruence.
Parameters
thingthe object to reduce words in.
wthe word to reduce.
Returns
An irreducible word equivalent to w.
Exceptions
LibsemigroupsExceptionif any of the values pointed at by the iterators is out of range, i.e. they do not belong to presentation().alphabet() and Presentation::validate_word throws.

◆ reduce_no_run_no_checks() [1/3]

template<typename Thing>
Thing::native_word_type reduce_no_run_no_checks ( Thing const & thing,
char const * w )
nodiscard

Defined in cong-common-helpers.hpp.

See reduce_no_run_no_checks for details.

◆ reduce_no_run_no_checks() [2/3]

template<typename Thing, typename Int>
Thing::native_word_type reduce_no_run_no_checks ( Thing const & thing,
std::initializer_list< Int > const & w )
nodiscard

Defined in cong-common-helpers.hpp.

Template Parameters
Intmust satisfy std::integral_type_v<Int>.

See reduce_no_run_no_checks for details.

◆ reduce_no_run_no_checks() [3/3]

template<typename Thing>
Thing::native_word_type reduce_no_run_no_checks ( Thing const & thing,
typename Thing::native_word_type const & w )
nodiscard

Defined in cong-common-helpers.hpp.

This function returns a reduced word equivalent to the input word w in the congruence represented by thing. This function triggers no enumeration of thing. The word output by this function is equivalent to the input word in the congruence. If thing is finished, then the output word is a normal form for the input word. If thing is not finished, then it might be that equivalent input words produce different output words.

Template Parameters
Thingthe type of the first parameter must be one of Kambites, KnuthBendix, ToddCoxeter, or Congruence.
Parameters
thingthe object to reduce words in.
wthe word to reduce.
Returns
An irreducible word equivalent to w.
Warning
This function does not check that the arguments are valid. In particular, it is assumed that every value pointed at by the iterators belongs to presentation().alphabet().