Factorisation and relations

This page contains information about the member functions of the FroidurePin class related to factorising elements, products, and defining relations.

word_type libsemigroups::FroidurePin::factorisation(const_reference x)

Factorise an element as a word in the generators.

The key difference between this function and minimal_factorisation(const_reference x), is that the resulting factorisation may not be minimal.

Note

This function may trigger a (partial) enumeration.

Parameters

x – a const reference to a possible element to factorise.

Throws

LibsemigroupsException – if x does not belong to this.

Returns

Returns a word_type which evaluates to x.

word_type libsemigroups::FroidurePin::minimal_factorisation(const_reference x)

Factorise an element as a word in the generators.

Returns the short-lex minimum word (if any) in the generators that evaluates to x.

Note

This function may trigger a (partial) enumeration.

Parameters

x – a const reference to a possible element to factorise.

Throws

LibsemigroupsException – if x does not belong to this.

Returns

Returns a word_type which evaluates to x.

element_type libsemigroups::FroidurePin::word_to_element(word_type const &w) const

Convert a word in the generators to an element.

This function returns a copy of the element obtained by evaluating w. A copy is returned instead of a reference, because the element corresponding to w may not yet have been enumerated.

See also

current_position.

Parameters

w – the word in the generators to evaluate.

Throws

LibsemigroupsException – if w is not a valid word in the generators, i.e. if it contains a value greater than or equal to the number of generators.

Returns

A copy of the element represented by the word w.