Constructors

inline libsemigroups::PPerm::PPerm(std::initializer_list<value_type> dom, std::initializer_list<value_type> ran, size_t M)

Construct from domain, range, and degree.

Constructs a partial perm of degree M such that (dom[i])f = ran[i] for all i and which is UNDEFINED on every other value in the range \([0, M)\).

See also

make.

Complexity

Linear in the size of dom.

Warning

No checks whatsoever are performed on the validity of the arguments.

Parameters
  • dom – the domain

  • ran – the range

  • M – the degree

Throws

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

inline libsemigroups::PPerm::PPerm(std::vector<value_type> const &dom, std::vector<value_type> const &ran, size_t M = N)

Construct from domain, range, and degree.

Constructs a partial perm of degree M such that (dom[i])f = ran[i] for all i and which is UNDEFINED on every other value in the range \([0, M)\).

See also

make.

Complexity

Linear in the size of dom.

Warning

No checks whatsoever are performed on the validity of the arguments.

Parameters
  • dom – the domain

  • ran – the range

  • M – the degree

Throws

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