libsemigroups  v3.0.0
C++ library for semigroups and monoids
Loading...
Searching...
No Matches
Word to class index

This page contains documentation for the member functions of ToddCoxeter class that can be used to convert a word into the index of congruence class.

See also
Class index to word for the inverses of the functions described on this page.

This page contains documentation for the member functions of ToddCoxeter that can be used to convert a word into the index of congruence class.

See also
Class index to word for the inverses of the functions described on this page.

Functions

template<typename Iterator1, typename Iterator2>
index_type current_index_of (Iterator1 first, Iterator2 last) const
 Returns the current index of the class containing a word.
 
template<typename Iterator1, typename Iterator2>
index_type current_index_of (Iterator1 first, Iterator2 last) const
 Returns the current index of the class containing a word.
 
template<typename Iterator1, typename Iterator2>
index_type current_index_of_no_checks (Iterator1 first, Iterator2 last) const
 Returns the current index of the class containing a word.
 
template<typename Iterator1, typename Iterator2>
index_type current_index_of_no_checks (Iterator1 first, Iterator2 last) const
 Returns the current index of the class containing a word.
 
template<typename Iterator1, typename Iterator2>
index_type index_of (Iterator1 first, Iterator2 last)
 Returns the index of the class containing a word.
 
template<typename Iterator1, typename Iterator2>
index_type index_of (Iterator1 first, Iterator2 last)
 Returns the index of the class containing a word.
 
template<typename Iterator1, typename Iterator2>
index_type index_of_no_checks (Iterator1 first, Iterator2 last)
 Returns the index of the class containing a word.
 
template<typename Iterator1, typename Iterator2>
index_type index_of_no_checks (Iterator1 first, Iterator2 last)
 Returns the index of the class containing a word.
 

Function Documentation

◆ current_index_of() [1/2]

template<typename Iterator1, typename Iterator2>
index_type current_index_of ( Iterator1 first,
Iterator2 last ) const
inline

This function returns the current index of the class containing the word described by the iterators first and last. No enumeration is triggered by calls to this function. Unless finished returns true, the index returned by this function is essentially arbitrary, and can only really be used to check whether or not two words are currently known to belong to the congruence.

The returned index is obtained by following the path in current_word_graph from node 0 labelled by the word given by the arguments first and last. If there is no such path, then UNDEFINED is returned.

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.
Returns
The current index of the class containing the word.
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.

◆ current_index_of() [2/2]

template<typename Word>
template<typename Iterator1, typename Iterator2>
index_type current_index_of ( Iterator1 first,
Iterator2 last ) const
inline

This function returns the current index of the class containing the word described by the iterators first and last. No enumeration is triggered by calls to this function. Unless finished returns true, the index returned by this function is essentially arbitrary, and can only really be used to check whether or not two words are currently known to belong to the congruence.

The returned index is obtained by following the path in current_word_graph from node 0 labelled by the word given by the arguments first and last. If there is no such path, then UNDEFINED is returned.

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.
Returns
The current index of the class containing the word.
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.

◆ current_index_of_no_checks() [1/2]

template<typename Iterator1, typename Iterator2>
index_type current_index_of_no_checks ( Iterator1 first,
Iterator2 last ) const

This function returns the current index of the class containing the word described by the iterators first and last. No enumeration is triggered by calls to this function. Unless finished returns true, the index returned by this function is essentially arbitrary, and can only really be used to check whether or not two words are currently known to belong to the congruence.

The returned index is obtained by following the path in current_word_graph from node 0 labelled by the word given by the arguments first and last. If there is no such path, then UNDEFINED is returned.

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.
Returns
The current index of the class containing the word.
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().

◆ current_index_of_no_checks() [2/2]

template<typename Word>
template<typename Iterator1, typename Iterator2>
index_type current_index_of_no_checks ( Iterator1 first,
Iterator2 last ) const
inline

This function returns the current index of the class containing the word described by the iterators first and last. No enumeration is triggered by calls to this function. Unless finished returns true, the index returned by this function is essentially arbitrary, and can only really be used to check whether or not two words are currently known to belong to the congruence.

The returned index is obtained by following the path in current_word_graph from node 0 labelled by the word given by the arguments first and last. If there is no such path, then UNDEFINED is returned.

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.
Returns
The current index of the class containing the word.
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().

◆ index_of() [1/2]

template<typename Iterator1, typename Iterator2>
index_type index_of ( Iterator1 first,
Iterator2 last )
inline

This function returns the index of the class containing the word described by the iterators first and last. A full enumeration is triggered by calls to this function. If the current_word_graph has not already been standardized, then this function first standardizes it with respect to Order::shortlex; otherwise the existing standardization order is used.

The returned index is obtained by following the path in current_word_graph from node 0 labelled by the word given by the arguments first and last. Since a full enumeration is triggered by calls to this function, the word graph is complete, and so the return value is never UNDEFINED.

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.
Returns
The index of the class containing the word.
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.

◆ index_of() [2/2]

template<typename Word>
template<typename Iterator1, typename Iterator2>
index_type index_of ( Iterator1 first,
Iterator2 last )
inline

This function returns the index of the class containing the word described by the iterators first and last. A full enumeration is triggered by calls to this function. If the current_word_graph has not already been standardized, then this function first standardizes it with respect to Order::shortlex; otherwise the existing standardization order is used.

The returned index is obtained by following the path in current_word_graph from node 0 labelled by the word given by the arguments first and last. Since a full enumeration is triggered by calls to this function, the word graph is complete, and so the return value is never UNDEFINED.

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.
Returns
The index of the class containing the word.
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.

◆ index_of_no_checks() [1/2]

template<typename Iterator1, typename Iterator2>
index_type index_of_no_checks ( Iterator1 first,
Iterator2 last )

This function returns the index of the class containing the word described by the iterators first and last. A full enumeration is triggered by calls to this function. If the current_word_graph has not already been standardized, then this function first standardizes it with respect to Order::shortlex; otherwise the existing standardization order is used.

The returned index is obtained by following the path in current_word_graph from node 0 labelled by the word given by the arguments first and last. Since a full enumeration is triggered by calls to this function, the word graph is complete, and so the return value is never UNDEFINED.

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.
Returns
The index of the class containing the word.
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().

◆ index_of_no_checks() [2/2]

template<typename Word>
template<typename Iterator1, typename Iterator2>
index_type index_of_no_checks ( Iterator1 first,
Iterator2 last )
inline

This function returns the index of the class containing the word described by the iterators first and last. A full enumeration is triggered by calls to this function. If the current_word_graph has not already been standardized, then this function first standardizes it with respect to Order::shortlex; otherwise the existing standardization order is used.

The returned index is obtained by following the path in current_word_graph from node 0 labelled by the word given by the arguments first and last. Since a full enumeration is triggered by calls to this function, the word graph is complete, and so the return value is never UNDEFINED.

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.
Returns
The index of the class containing the word.
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().