Constructors¶
-
libsemigroups::CongruenceByPairs::CongruenceByPairs(CongruenceByPairs const&) = default¶
A default copy constructor.
-
libsemigroups::CongruenceByPairs::CongruenceByPairs(CongruenceByPairs&&) = default¶
A default move constructor.
-
template<typename T>
inline libsemigroups::CongruenceByPairs::CongruenceByPairs(congruence_kind type, T const &S)¶ Construct a CongruenceByPairs over the FroidurePin instance
fprepresenting a left/right/2-sided congruence according totype.- Complexity
Constant.
Warning
The parameter
T& Sis copied, this might be expensive, use a std::shared_ptr to avoid the copy!- Template Parameters:
T – a class derived from FroidurePinBase. It is required that
T::element_typeis the same as CongruenceByPairs::element_type (which is the same as the template parameterelement_type).- Parameters:
type – whether the congruence is left, right, or 2-sided
S – a reference to the semigroup over which the congruence is defined.
- Throws:
LibsemigroupsException – if
typeand the template parameterTare incompatible. Currently, this is whentypeis notcongruence_kind::rightandT::element_typeis TCE.
Construct a CongruenceByPairs over the FroidurePin instance
Srepresenting a left/right/2-sided congruence according totype.- Complexity
Constant.
Note
The FroidurePinBase pointed to by
Sis 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.
- Throws:
LibsemigroupsException – if
typeand the template parameterTare incompatible. Currently, this is whentypeis notcongruence_kind::rightandT::element_typeis TCE.
No doc.