Congruence(congruence_type, T const&)

template<typename T>
inline libsemigroups::Congruence::Congruence(congruence_type type, T const &S)

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

Exceptions

Does not throw itself but functions called by this function may throw.

Complexity

Linear in S.size().

Warning

the parameter T const& S is copied, this might be expensive, use a std::shared_ptr to avoid the copy!

Template Parameters

T – a class derived from FroidurePinBase.

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

  • S – a const reference to the semigroup over which the congruence is defined.