CongruenceByPairs(congruence_type, std::shared_ptr<FroidurePinBase>)ΒΆ

libsemigroups::CongruenceByPairs::CongruenceByPairs(congruence_type type, std::shared_ptr<FroidurePinBase> S)

Construct a CongruenceByPairs over the FroidurePin instance S representing a left/right/2-sided congruence according to type.

Complexity

Constant.

Note

The FroidurePinBase pointed to by S is not copied

Parameters
  • type: whether the congruence is left, right, or 2-sided

  • S: a shared_ptr to the semigroup over which the congruence is defined.

Exceptions
  • LibsemigroupsException: if type and the template parameter T are incompatible. Currently, this is when type is not congruence_type::right and T::element_type is TCE.