enumerate

void libsemigroups::FroidurePinBase::enumerate(size_t limit)

Enumerate the semigroup until limit elements are found.

If the semigroup is already fully enumerated, or the number of elements previously enumerated exceeds limit, then calling this member function does nothing. Otherwise, run attempts to find at least the maximum of limit and FroidurePin::batch_size elements of the semigroup. If killed is set to true (usually by another process), then the enumeration is terminated as soon as possible. It is possible to resume enumeration at some later point after any call to this member function.

If the semigroup is fully enumerated, then it knows its left and right Cayley graphs, and a minimal factorisation of every element (in terms of its generating set). All of the elements are stored in memory until the object is destroyed.

The parameter limit defaults to FroidurePin::LIMIT_MAX.