3.5.6. permutation.hpp

Full path: permutation/permutation.hpp

template<typename Perm>
concept Permutation

Requires MoveConstructible<Perm> and MoveAssignable<Perm>.

Associated Types

using value_type = typename permutation_traits<Perm>::value_type

The type of objects the permutation maps.

Notation

Perm p
value_type i
Valid Expressions

  • perm_group::get(p, i): returns the image of i under p. The return type must be convertible to value_type.

template<typename Perm>
concept MutablePermutation

Requires Permutation<Perm>.

Associated Types

using value_type = typename permutation_traits<Perm>::value_type

The type of objects the permutation maps.

Notation

Perm p
value_type i
value_type j
Valid Expressions

  • perm_group::put(p, i, j): sets the image of i under p to j.

template<typename Perm>
concept DegreeAwarePermutation

Requires Permutation<Perm>.

Notation

Perm p
Valid Expressions

  • perm_group::degree(p): returns the number of elements of the permutation. The return type must be convertible to std::size_t.