enumerate¶
-
void libsemigroups::FroidurePin::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 oflimit
and FroidurePin::batch_size elements of the semigroup. Ifkilled
is set totrue
(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.