template<size_t N = 0, typename Scalar = std::conditional_t<N == 0, uint32_t, typename SmallestInteger<N>::type>>
class libsemigroups::Transf< N, Scalar >
Defined in transf.hpp
.
A transformation \(f\) is just a function defined on the whole of \(\{0, 1, \ldots, n - 1\}\) for some integer \(n\) called the degree of \(f\). A transformation is stored as a container of the images of \(\{0, 1, \ldots, n - 1\}\), i.e. \(((0)f, (1)f, \ldots, (n - 1)f)\).
If N
is 0
(the default), then the degree of a Transf instance can be defined at runtime, and if N
is not 0
, then the degree is fixed at compile time.
If N
is 0
, then the default value of Scalar
is uint32_t
. If N
is not 0
, then the default value of Scalar
is the smallest integer type able to hold N
. See also SmallestInteger.
- Template Parameters
-
N | the degree (default: 0 ). |
Scalar | an unsigned integer type (the type of the image values). |
This class inherits from either StaticPTransf or DynamicPTransf, see the documentation of these classes for more details of the available member functions.