policy::froidure_pin

enum libsemigroups::congruence::ToddCoxeter::policy::froidure_pin

The values in this enum can be used as the argument for ToddCoxeter::fpp (which stands for “Froidure-Pin policy”) to specify whether the defining relations, or the left/right Cayley graph, of a FroidurePin instance, should be used in the coset enumeration.

If the number of classes in the congruence represented by a ToddCoxeter instance is relatively small, by some definition, compared to the size of the semigroup represented by the FroidurePin instance, then the use_relations policy is often faster. If the number of classes is relatively large, then use_cayley_graph is often faster. It is guaranteed that ToddCoxeter::run will terminate in an amount of time proportionate to the size of the input if the policy use_cayley_graph is used, whereas the run time when using the policy use_relations can be arbitrarily high regardless of the size of the input.

Values:

none

No policy has been specified.

use_relations

Use the relations of a FroidurePin instance.

use_cayley_graph

Use the left or right Cayley graph of a FroidurePin instance.