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 alli
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 alli
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
.