Validating partial perms

template<size_t N, typename Scalar>
void libsemigroups::validate(PPerm<N, Scalar> const &x)

Validate a partial perm.

Complexity

Linear in the size of the container x.degree().

Template Parameters

T – the type of the partial perm to validate.

Parameters

x – the partial perm.

Throws

LibsemigroupsException – if:

  • the image of any point in x exceeds x.degree() and is not equal to UNDEFINED; or

  • x is not injective