Permutation group.
More...
#include <permutation_group.h>
Permutation group.
PermutationGroup is a group of permutations. A permutation group is specified compactly by a generating set (set of permutations that can multiplicatively generate the entire group).
Definition at line 48 of file permutation_group.h.
◆ element_type
◆ Permutation
◆ PermutationGroup() [1/4]
| TiledArray::symmetry::PermutationGroup::PermutationGroup |
( |
const PermutationGroup & |
| ) |
|
|
default |
◆ PermutationGroup() [2/4]
| TiledArray::symmetry::PermutationGroup::PermutationGroup |
( |
PermutationGroup && |
| ) |
|
|
default |
◆ PermutationGroup() [3/4]
| TiledArray::symmetry::PermutationGroup::PermutationGroup |
( |
std::vector< Permutation > |
generators | ) |
|
|
inline |
General constructor.
This constructs a permutation group from a set of generators. The order of generators does not matter, and repeated generators will be ignored (internally generators are stored as a sorted sequence).
- Parameters
-
| degree | The number of elements in the set whose symmetry this group describes |
| generators | The generating set that defines this group |
Definition at line 75 of file permutation_group.h.
◆ PermutationGroup() [4/4]
| TiledArray::symmetry::PermutationGroup::PermutationGroup |
( |
| ) |
|
|
inlineprotected |
◆ begin()
| std::vector<Permutation>::const_iterator TiledArray::symmetry::PermutationGroup::begin |
( |
| ) |
const |
|
inline |
forward iterator over the group elements pointing to the first element
PermutationGroup iterators dereference to group elements, i.e. Permutation objects. Iterators can be used to iterate over group elements in lexicographical order.
- See also
- operator[]
- Returns
- a std::vector<Permutation>::const_iterator object that points to the first element in the group
Definition at line 124 of file permutation_group.h.
◆ cbegin()
| std::vector<Permutation>::const_iterator TiledArray::symmetry::PermutationGroup::cbegin |
( |
| ) |
const |
|
inline |
forward iterator over the group elements pointing to the first element
- Returns
- a std::vector<Permutation>::const_iterator object that points to the first element in the group
Definition at line 131 of file permutation_group.h.
◆ cend()
| std::vector<Permutation>::const_iterator TiledArray::symmetry::PermutationGroup::cend |
( |
| ) |
const |
|
inline |
forward iterator over the group elements pointing past the last element
- Returns
- a std::vector<Permutation>::const_iterator object that points past the last element in the group
Definition at line 145 of file permutation_group.h.
◆ domain()
template<typename Set >
| Set TiledArray::symmetry::PermutationGroup::domain |
( |
| ) |
const |
|
inline |
Computes the domain of this group.
- Template Parameters
-
| Set | a container type in which the result will be returned (e.g. std::set ) |
- Returns
- the domain of this permutation, as a sorted sequence
Definition at line 156 of file permutation_group.h.
◆ elements()
| const std::vector<Permutation>& TiledArray::symmetry::PermutationGroup::elements |
( |
| ) |
const |
|
inline |
Elements vector accessor.
- Note
- Elements appear in lexicograhical order.
- Returns
- A const reference to the vector of elements
Definition at line 107 of file permutation_group.h.
◆ end()
| std::vector<Permutation>::const_iterator TiledArray::symmetry::PermutationGroup::end |
( |
| ) |
const |
|
inline |
forward iterator over the group elements pointing past the last element
- Returns
- a std::vector<Permutation>::const_iterator object that points past the last element in the group
Definition at line 138 of file permutation_group.h.
◆ generators()
| const std::vector<Permutation>& TiledArray::symmetry::PermutationGroup::generators |
( |
| ) |
const |
|
inline |
Generators vector accessor.
- Note
- Generators appear in lexicograhical order.
- Returns
- A const reference to the vector of generators
Definition at line 113 of file permutation_group.h.
◆ identity()
| static Permutation TiledArray::symmetry::PermutationGroup::identity |
( |
| ) |
|
|
inlinestatic |
◆ init()
| static void TiledArray::symmetry::PermutationGroup::init |
( |
std::vector< Permutation > & |
generators, |
|
|
std::vector< Permutation > & |
elements |
|
) |
| |
|
inlinestaticprotected |
computes elements from generators
- Parameters
-
| [in,out] | generators | sequence set of generators; duplicate generators will be removed, generators will be resorted |
| [out] | elements | resulting elements |
add generators to the elements
Definition at line 174 of file permutation_group.h.
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ operator[]()
| const Permutation& TiledArray::symmetry::PermutationGroup::operator[] |
( |
unsigned int |
i | ) |
const |
|
inline |
Group element accessor.
- Note
- Elements are ordered lexicograhically.
- Parameters
-
| i | Index of the group element to be returned, 0<=i&&i<order() |
- Returns
- A const reference to the i-th group element
Definition at line 98 of file permutation_group.h.
◆ order()
| unsigned int TiledArray::symmetry::PermutationGroup::order |
( |
| ) |
const |
|
inline |
Group order accessor.
The order of the group is the number of elements in the group. For symmetric group G the order is factorial of G->degree()
- Returns
- The order of the group
Definition at line 86 of file permutation_group.h.
◆ elements_
| std::vector<Permutation> TiledArray::symmetry::PermutationGroup::elements_ |
|
protected |
◆ generators_
| std::vector<Permutation> TiledArray::symmetry::PermutationGroup::generators_ |
|
protected |
The documentation for this class was generated from the following file: