Inheritance diagram for TiledArray::symmetry::PermutationGroup:
Collaboration diagram for TiledArray::symmetry::PermutationGroup:

Documentation

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 49 of file permutation_group.h.

Public Types

using Permutation = TiledArray::symmetry::Permutation
 
using element_type = Permutation
 

Public Member Functions

 PermutationGroup (const PermutationGroup &)=default
 
 PermutationGroup (PermutationGroup &&)=default
 
PermutationGroupoperator= (const PermutationGroup &)=default
 
PermutationGroupoperator= (PermutationGroup &&)=default
 
 PermutationGroup (std::vector< Permutation > generators)
 General constructor. More...
 
unsigned int order () const
 Group order accessor. More...
 
const Permutationoperator[] (unsigned int i) const
 Group element accessor. More...
 
const std::vector< Permutation > & elements () const
 Elements vector accessor. More...
 
const std::vector< Permutation > & generators () const
 Generators vector accessor. More...
 
template<typename Set >
Set domain () const
 Computes the domain of this group. More...
 
Iterator accessors
std::vector< Permutation >::const_iterator begin () const
 forward iterator over the group elements pointing to the first element More...
 
std::vector< Permutation >::const_iterator cbegin () const
 forward iterator over the group elements pointing to the first element More...
 
std::vector< Permutation >::const_iterator end () const
 forward iterator over the group elements pointing past the last element More...
 
std::vector< Permutation >::const_iterator cend () const
 forward iterator over the group elements pointing past the last element More...
 

Static Public Member Functions

static Permutation identity ()
 Idenity element accessor. More...
 

Protected Member Functions

 PermutationGroup ()
 

Static Protected Member Functions

static void init (std::vector< Permutation > &generators, std::vector< Permutation > &elements)
 

Protected Attributes

std::vector< Permutationgenerators_
 Group generators. More...
 
std::vector< Permutationelements_
 Group elements. More...
 

Member Typedef Documentation

◆ element_type

◆ Permutation

Constructor & Destructor Documentation

◆ 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
degreeThe number of elements in the set whose symmetry this group describes
generatorsThe generating set that defines this group

Definition at line 74 of file permutation_group.h.

Here is the call graph for this function:

◆ PermutationGroup() [4/4]

TiledArray::symmetry::PermutationGroup::PermutationGroup ( )
inlineprotected

Definition at line 170 of file permutation_group.h.

Member Function Documentation

◆ 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.

Here is the caller graph for this function:

◆ 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 132 of file permutation_group.h.

Here is the caller graph for this function:

◆ 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 148 of file permutation_group.h.

Here is the caller graph for this function:

◆ domain()

template<typename Set >
Set TiledArray::symmetry::PermutationGroup::domain ( ) const
inline

Computes the domain of this group.

Template Parameters
Seta 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 159 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 105 of file permutation_group.h.

Here is the caller graph for this function:

◆ 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 140 of file permutation_group.h.

Here is the caller graph for this function:

◆ 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 111 of file permutation_group.h.

Here is the caller graph for this function:

◆ identity()

static Permutation TiledArray::symmetry::PermutationGroup::identity ( )
inlinestatic

Idenity element accessor.

Returns
the Identity element

Definition at line 89 of file permutation_group.h.

◆ init()

static void TiledArray::symmetry::PermutationGroup::init ( std::vector< Permutation > &  generators,
std::vector< Permutation > &  elements 
)
inlinestaticprotected

computes elements from generators

Parameters
[in,out]generatorssequence set of generators; duplicate generators will be removed, generators will be resorted
[out]elementsresulting elements

add generators to the elements

Definition at line 177 of file permutation_group.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=() [1/2]

PermutationGroup& TiledArray::symmetry::PermutationGroup::operator= ( const PermutationGroup )
default

◆ operator=() [2/2]

PermutationGroup& TiledArray::symmetry::PermutationGroup::operator= ( PermutationGroup &&  )
default

◆ operator[]()

const Permutation& TiledArray::symmetry::PermutationGroup::operator[] ( unsigned int  i) const
inline

Group element accessor.

Note
Elements are ordered lexicograhically.
Parameters
iIndex of the group element to be returned, 0<=i&&i<order()
Returns
A const reference to the i-th group element

Definition at line 96 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 84 of file permutation_group.h.

Here is the caller graph for this function:

Member Data Documentation

◆ elements_

std::vector<Permutation> TiledArray::symmetry::PermutationGroup::elements_
protected

Group elements.

Definition at line 58 of file permutation_group.h.

◆ generators_

std::vector<Permutation> TiledArray::symmetry::PermutationGroup::generators_
protected

Group generators.

Definition at line 56 of file permutation_group.h.


The documentation for this class was generated from the following file: