Settings specifically for MinimalRepOrc

This page contains information about the various settings specifically for the MinimalRepOrc class.

template<typename T = uint32_t>
ActionDigraph<T> libsemigroups::MinimalRepOrc::digraph() const

Get the digraph.

This function attempts to find a right congruence, represented as an ActionDigraph, with the minimum possible number of nodes such that the action of the semigroup or monoid defined by the presentation consisting of its short_rules and long_rules on the nodes of the ActionDigraph corresponds to a semigroup of size target_size.

If no such ActionDigraph can be found, then an empty ActionDigraph is returned (with 0 nodes and 0 edges).

The algorithm implemented by this function repeatedly runs:

RepOrc(*this)
    .min_nodes(1)
    .max_nodes(best)
    .target_size(target_size())
    .digraph();
where best is initially target_size, until the returned ActionDigraph is empty, and then the penultimate ActionDigraph is returned (if any).

Warning

The return value of this function is recomputed every time it is called.

Warning

If the return value of number_of_threads is greater than 1, then the value returned by this function is non-deterministic, and may vary even for the same parameters.

Template Parameters

T – the type of the nodes in the returned digraph.

Parameters

(None) – this function has no parameters.

Throws

(None) – This function guarantees not to throw a LibsemigroupsException.

Returns

A value of type ActionDigraph.

inline size_t libsemigroups::MinimalRepOrc::target_size() const noexcept

The current target size.

This function returns the current value for the target size, i.e. the desired size of the transformation semigroup corresponding to the ActionDigraph returned by the function digraph.

Parameters

(None) – this function has no parameters.

Throws

(None) – This function is noexcept and is guaranteed never to throw.

Returns

A value of type size_t.

inline MinimalRepOrc &libsemigroups::MinimalRepOrc::target_size(size_t val) noexcept

Set the target size.

This function sets the target size, i.e. the desired size of the transformation semigroup corresponding to the ActionDigraph returned by the function digraph.

Parameters

val – the target size.

Throws

(None) – This function is noexcept and is guaranteed never to throw.

Returns

A reference to this.