copy_add_generators

template<typename TCollection>
FroidurePin *libsemigroups::FroidurePin::copy_add_generators(TCollection const &coll) const

Returns a new semigroup generated by this and coll.

This member function is equivalent to copying this using FroidurePin::FroidurePin(const FroidurePin& copy) and then calling FroidurePin::add_generators on the copy, but this member function avoids copying the parts of this that are immediately invalidated by FroidurePin::add_generators.

The elements the argument coll are copied into the semigroup, and should be deleted by the caller. If an element in coll has a degree different to this->degree(), a LibsemigroupsException will be thrown.