FroidurePinBase

class FroidurePinBase : public libsemigroups::Runner

Defined in froidure-pin-base.hpp.

FroidurePinBase is an abstract base class for the class template FroidurePin.

FroidurePinBase allows a polymorphic interface to instances of FroidurePin and its member functions reflect those member functions of FroidurePin that do not depend on the template parameter TElementType (the type of the elements of the semigroup represented).

Subclassed by libsemigroups::FroidurePin< TElementType, TTraits >

Member types

cayley_graph_type

Type for a left or right Cayley graph.

const_rule_iterator

Return type of cbegin_rules and cend_rules .

element_index_type

Type for the index of an element.

size_type

Unsigned integer type.

Constructors

FroidurePinBase()

Default constructor.

FroidurePinBase(FroidurePinBase &&) = default

Default move constructor.

FroidurePinBase(FroidurePinBase const&)

Copy constructor.

Deleted constructors

operator=(FroidurePinBase &&) = delete

Deleted.

operator=(FroidurePinBase const &) = delete

Deleted.

Settings

batch_size() const noexcept

Returns the current value of the batch size.

batch_size(size_t) noexcept

Set a new value for the batch size.

concurrency_threshold() const noexcept

Returns the current value of the concurrency threshold.

concurrency_threshold(size_t) noexcept

Set the threshold for concurrency to be used by member functions.

immutable() const noexcept

Returns the current immutability.

immutable(bool) noexcept

Set immutability.

max_threads() const noexcept

Returns the current value of the maximum number of threads.

max_threads(size_t) noexcept

Set the maximum number of threads.

Attributes

current_number_of_rules() const noexcept

Returns the number of relations that have been found so far.

current_size() const noexcept

Returns the number of elements so far enumerated.

degree() const noexcept

Returns the degree of any and all elements.

enumerate(size_t)

Enumerate until at least a specified number of elements are found.

is_monoid()

Check if the semigroup is a monoid.

size()

Returns the size.

Cayley graphs

left(element_index_type,letter_type)

Returns the index of the product of a generator and an element.

left_cayley_graph()

Returns a const reference to the left Cayley graph.

right(element_index_type,letter_type)

Returns the index of the product of an element and a generator.

right_cayley_graph()

Returns a const reference to the right Cayley graph.

Factorisation, products, and relations

cbegin_rules() const

Returns a forward iterator pointing to the first rule (if any).

cend_rules() const

Returns a forward iterator pointing one past the last rule (if any).

current_length(element_index_type) const

Returns the length of the short-lex least word.

current_max_word_length() const noexcept

Returns the maximum length of a word in the generators so far computed.

current_position(letter_type) const

Returns the position in of the generator with specified index.

current_position(std::initializer_list< size_t > const &) const

Returns the position corresponding to a word.

current_position(word_type const &) const

Returns the position corresponding to a word.

factorisation(element_index_type)

Returns a word representing an element given by index.

factorisation(word_type&, element_index_type)

Obtain a word representing an element given by index.

length(element_index_type)

Returns the length of the short-lex least word.

minimal_factorisation(element_index_type)

Returns a short-lex least word representing an element given by index.

minimal_factorisation(word_type &,element_index_type)

Obtain a short-lex least word representing an element given by index.

minimal_factorisation(word_type &,element_index_type) const

Obtain a short-lex least word representing an element given by index.

number_of_rules()

Returns the total number of relations in the presentation.

product_by_reduction(element_index_type,element_index_type) const

Compute a product using the Cayley graph.

Prefixes and suffixes

final_letter(element_index_type) const

Returns the last letter of the element with specified index.

first_letter(element_index_type) const

Returns the first letter of the element with specified index.

prefix(element_index_type) const

Returns the position of the longest proper prefix.

suffix(element_index_type) const

Returns the position of the longest proper suffix.

Member functions inherited from Runner

dead() const noexcept

Check if the runner is dead.

finished() const

Check if run has been run to completion or not.

kill() noexcept

Stop run from running (thread-safe).

report() const

Check if it is time to report.

report_every() const noexcept

Get the minimum elapsed time between reports.

report_every(TIntType)

Set the minimum elapsed time between reports.

report_every(std::chrono::nanoseconds)

Set the minimum elapsed time between reports.

report_why_we_stopped() const

Report why run stopped.

run()

Run until finished .

run_for(TIntType)

Run for a specified amount of time.

run_for(std::chrono::nanoseconds)

Run for a specified amount of time.

run_until(T&&)

Run until a nullary predicate returns true or finished .

run_until(bool(*)())

Run until a nullary predicate returns true or finished .

running() const noexcept

Check if currently running.

running_for() const noexcept

Check if the runner is currently running for a particular length of time.

running_until() const noexcept

Check if the runner is currently running until a nullary predicate returns true.

started() const

Check if run has been called at least once before.

stopped() const

Check if the runner is stopped.

stopped_by_predicate() const

Check if the runner was, or should, stop because of the argument for run_until .

timed_out() const

Check if the amount of time passed to run_for has elapsed.