Constructors

libsemigroups::FpSemigroup::FpSemigroup()

Default construct an FpSemigroup.

Complexity

Constant.

Parameters

(None)

Throws

(None) – This function guarantees not to throw a LibsemigroupsException.

libsemigroups::FpSemigroup::FpSemigroup(FpSemigroup const&) = default

Default copy constructor.

template<typename T>
inline explicit libsemigroups::FpSemigroup::FpSemigroup(T const &S)

Construct an FpSemigroup isomorphic to the FroidurePin instance S.

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

S – a const reference to the semigroup isomorphic to the one being constructed.

Throws

(None) – This function guarantees not to throw a LibsemigroupsException.

explicit libsemigroups::FpSemigroup::FpSemigroup(std::shared_ptr<FroidurePinBase> S)

Construct an FpSemigroup isomorphic to the FroidurePin instance S.

Complexity

Constant.

Note

The FroidurePinBase pointed to by S is not copied.

Parameters

S – a shared_ptr to the semigroup isomorphic to the finitely presented semigroup being defined.

Throws

(None) – This function guarantees not to throw a LibsemigroupsException.