libsemigroups  v3.3.0
C++ library for semigroups and monoids
Loading...
Searching...
No Matches
The `make` function for HPCombi

This page contains documentation for the make function overloads for safely constructing HPCombi types.

Functions

template<typename Container>
HPCombi::Perm16 make< HPCombi::Perm16 > (Container &&cont)
 Construct a HPCombi::Perm16 from universal reference and check.
 
template<typename Container>
HPCombi::PPerm16 make< HPCombi::PPerm16 > (Container &&cont)
 Construct a HPCombi::PPerm16 from container and check.
 
template<typename Int>
HPCombi::PPerm16 make< HPCombi::PPerm16 > (std::initializer_list< Int > const &dom, std::initializer_list< Int > const &ran, size_t M=16)
 Construct a HPCombi::PPerm16 from domain, range, and degree, and check.
 
HPCombi::PPerm16 make< HPCombi::PPerm16 > (std::vector< uint8_t > const &dom, std::vector< uint8_t > const &ran, size_t deg=16)
 Construct a HPCombi::PPerm16 from domain, range, and degree, and check.
 
template<typename Container>
HPCombi::PTransf16 make< HPCombi::PTransf16 > (Container &&cont)
 Construct a HPCombi::PTransf16 from universal reference and check.
 
HPCombi::PTransf16 make< HPCombi::PTransf16 > (std::vector< uint8_t > const &dom, std::vector< uint8_t > const &ran, size_t deg=16)
 Construct a HPCombi::PTransf16 from domain, range, and degree, and check.
 
template<typename Container>
HPCombi::Transf16 make< HPCombi::Transf16 > (Container &&cont)
 Construct a HPCombi::Transf16 from universal reference and check.
 

Function Documentation

◆ make< HPCombi::Perm16 >()

template<typename Container>
HPCombi::Perm16 make< HPCombi::Perm16 > ( Container && cont)
nodiscard

Constructs a HPCombi::Perm16 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
Containertype of the container.
Parameters
contthe container.
Returns
A HPCombi::Perm16 instance.
Exceptions
LibsemigroupsExceptionif any of the following hold:
  • the size of cont exceeds 16;
  • any value in cont exceeds cont.size().
Complexity
Linear in the size of the container cont.

◆ make< HPCombi::PPerm16 >() [1/3]

template<typename Container>
HPCombi::PPerm16 make< HPCombi::PPerm16 > ( Container && cont)
nodiscard

Constructs a HPCombi::PPerm16 initialized using the container cont as follows: the image of the point i under the partial perm is the value in position i of the container cont.

Template Parameters
Containertype of the container.
Parameters
contthe container.
Returns
A HPCombi::PPerm16 instance.
Exceptions
LibsemigroupsExceptionif any of the following hold:
  • the size of cont exceeds 16;
  • any value in cont exceeds cont.size();
  • any value in cont is repeated.
Complexity
Linear in the size of the container cont.

◆ make< HPCombi::PPerm16 >() [2/3]

template<typename Int>
HPCombi::PPerm16 make< HPCombi::PPerm16 > ( std::initializer_list< Int > const & dom,
std::initializer_list< Int > const & ran,
size_t M = 16 )
nodiscard

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

Template Parameters
Intthe type of the integers in the initializer lists.
Parameters
domthe domain.
ranthe range.
Mthe degree.
Exceptions
LibsemigroupsExceptionif any of the following fail to hold:
  • the value M is not compatible with the template parameter N
  • dom and ran do not have the same size
  • any value in dom or ran is greater than M
  • there are repeated entries in dom or ran.
Complexity
Linear in the size of dom.

◆ make< HPCombi::PPerm16 >() [3/3]

HPCombi::PPerm16 make< HPCombi::PPerm16 > ( std::vector< uint8_t > const & dom,
std::vector< uint8_t > const & ran,
size_t deg = 16 )
nodiscard

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

Parameters
domthe domain.
ranthe range.
degthe degree.
Exceptions
LibsemigroupsExceptionif any of the following fail to hold:
  • the value deg is greater than 16
  • dom and ran do not have the same size
  • any value in dom or ran is greater than deg
  • there are repeated entries in dom or ran.
Complexity
Linear in the size of dom.

◆ make< HPCombi::PTransf16 >() [1/2]

template<typename Container>
HPCombi::PTransf16 make< HPCombi::PTransf16 > ( Container && cont)
nodiscard

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

Template Parameters
Containertype of the container.
Parameters
contthe container.
Returns
A HPCombi::PTransf16 instance.
Exceptions
LibsemigroupsExceptionif any of the following hold:
  • the size of cont exceeds 16;
  • any value in cont exceeds cont.size().
Complexity
Linear in the size of the container cont.

◆ make< HPCombi::PTransf16 >() [2/2]

HPCombi::PTransf16 make< HPCombi::PTransf16 > ( std::vector< uint8_t > const & dom,
std::vector< uint8_t > const & ran,
size_t deg = 16 )
nodiscard

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

Parameters
domthe domain.
ranthe range.
degthe degree (defaults to 16).
Exceptions
LibsemigroupsExceptionif any of the following fail to hold:
  • the value deg is greater than 16
  • dom and ran do not have the same size
  • any value in dom or ran is greater than deg
  • there are repeated entries in dom.
Complexity
Linear in the size of dom.

◆ make< HPCombi::Transf16 >()

template<typename Container>
HPCombi::Transf16 make< HPCombi::Transf16 > ( Container && cont)
nodiscard

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

Template Parameters
Containertype of the container.
Parameters
contthe container.
Returns
A HPCombi::Transf16 instance.
Exceptions
LibsemigroupsExceptionif any of the following hold:
  • the size of cont exceeds 16;
  • any value in cont exceeds cont.size().
Complexity
Linear in the size of the container cont.