libsemigroups  v3.3.0
C++ library for semigroups and monoids
Loading...
Searching...
No Matches
make<Perm>

This page contains documentation related to safely constructing a Perm instance.

See also
The `make` function for an overview of possible uses of the make function.

Functions

template<typename Return, typename OtherContainer>
std::enable_if_t< IsPerm< Return >, Return > make (OtherContainer &&cont)
 Construct from universal reference container and check.
 
template<typename Return>
std::enable_if_t< IsPerm< Return >, Return > make (std::initializer_list< typename Return::point_type > cont)
 Construct from universal reference container and check.
 

Function Documentation

◆ make() [1/2]

template<typename Return, typename OtherContainer>
std::enable_if_t< IsPerm< Return >, Return > make ( OtherContainer && cont)
nodiscard

Constructs a Perm initialized using the container cont as follows: the image of the point i under the permutation is the value in position i of the container cont.

Template Parameters
Returnthe return type. Must satisfy IsPerm<Return>.
OtherContaineruniversal reference for the type of the container.
Parameters
contthe container.
Returns
A Perm instance with degree N.
Exceptions
LibsemigroupsExceptionif any of the following hold:
  • the size of cont is incompatible with container_type.
  • any value in cont exceeds cont.size() and is not equal to UNDEFINED.
  • there are repeated values in cont.
Complexity
Linear in the size of the container cont.

◆ make() [2/2]

template<typename Return>
std::enable_if_t< IsPerm< Return >, Return > make ( std::initializer_list< typename Return::point_type > cont)
nodiscard

Constructs a Perm initialized using the container cont as follows: the image of the point i under the permutation is the value in position i of the container cont.

Template Parameters
Returnthe return type. Must satisfy IsPerm<Return>.
Parameters
contthe container.
Returns
A Perm instance with degree N.
Exceptions
LibsemigroupsExceptionif any of the following hold:
  • the size of cont is incompatible with container_type.
  • any value in cont exceeds cont.size() and is not equal to UNDEFINED.
  • there are repeated values in cont.
Complexity
Linear in the size of the container cont.