copy_closure¶
-
template<typename TCollection>
FroidurePin *libsemigroups::FroidurePin::copy_closure(TCollection const &coll)¶ Returns a new semigroup generated by
this
and copies of the non-redundant elements ofcoll
.This member function is equivalent to copying
this
and then calling FroidurePin::closure on the copy withcoll
, but this member function avoids copying the parts ofthis
that are immediately invalidated by FroidurePin::closure.The elements the argument
coll
are copied into the semigroup, and should be deleted by the caller. If an element incoll
has a degree different tothis->degree()
, a LibsemigroupsException will be thrown.