TiledArray  0.7.0
TiledArray::symmetry Namespace Reference

Namespaces

 detail
 

Classes

class  Permutation
 Permutation of a sequence of objects indexed by base-0 indices. More...
 
class  PermutationGroup
 Permutation group. More...
 
class  Representation
 
class  SymmetricGroup
 Symmetric group. More...
 

Functions

bool operator== (const Permutation &p1, const Permutation &p2)
 Permutation equality operator. More...
 
bool operator!= (const Permutation &p1, const Permutation &p2)
 Permutation inequality operator. More...
 
bool operator< (const Permutation &p1, const Permutation &p2)
 Permutation less-than operator. More...
 
std::ostream & operator<< (std::ostream &output, const Permutation &p)
 Add permutation to an output stream. More...
 
Permutation operator- (const Permutation &perm)
 Inverse permutation operator. More...
 
Permutation operator* (const Permutation &p1, const Permutation &p2)
 Permutation multiplication operator. More...
 
Permutationoperator*= (Permutation &p1, const Permutation &p2)
 return *this ^ other More...
 
Permutation operator^ (const Permutation &perm, int n)
 Raise perm to the n-th power. More...
 
template<typename T , std::size_t N>
std::array< T, N > operator* (const Permutation &perm, const std::array< T, N > &a)
 Permute a std::array. More...
 
template<typename T , std::size_t N>
std::array< T, N > & operator*= (std::array< T, N > &a, const Permutation &perm)
 In-place permute a std::array. More...
 
template<typename T , typename A >
std::vector< T > operator* (const Permutation &perm, const std::vector< T, A > &v)
 permute a std::vector<T> More...
 
template<typename T , typename A >
std::vector< T, A > & operator*= (std::vector< T, A > &v, const Permutation &perm)
 In-place permute a std::array. More...
 
bool operator== (const PermutationGroup &p1, const PermutationGroup &p2)
 PermutationGroup equality operator. More...
 
bool operator!= (const PermutationGroup &p1, const PermutationGroup &p2)
 PermutationGroup inequality operator. More...
 
bool operator< (const PermutationGroup &p1, const PermutationGroup &p2)
 PermutationGroup less-than operator. More...
 
std::ostream & operator<< (std::ostream &output, const PermutationGroup &p)
 Add permutation group to an output stream. More...
 
template<typename MultiIndex >
bool is_lexicographically_smallest (const MultiIndex &idx, const PermutationGroup &pg)
 
PermutationGroup conjugate (const PermutationGroup &G, const PermutationGroup::Permutation &h)
 Computes conjugate permutation group obtained by the action of a permutation. More...
 
PermutationGroup intersect (const PermutationGroup &G1, const PermutationGroup &G2)
 
template<typename Set >
PermutationGroup stabilizer (const PermutationGroup &G, const Set &f)
 Computes the largest subgroup of a permutation group that leaves the given set of indices fixed. More...
 
template<typename T >
identity ()
 identity for group of objects of type T More...
 

Function Documentation

◆ identity()

template<typename T >
T TiledArray::symmetry::identity ( )

identity for group of objects of type T

Here is the caller graph for this function:

◆ operator!=()

bool TiledArray::symmetry::operator!= ( const Permutation p1,
const Permutation p2 
)
inline

Permutation inequality operator.

Parameters
p1The left-hand permutation to be compared
p2The right-hand permutation to be compared
Returns
true if any element of p1 is not equal to that of p2, otherwise false.

Definition at line 481 of file permutation.h.

Here is the call graph for this function:

◆ operator*() [1/3]

Permutation TiledArray::symmetry::operator* ( const Permutation p1,
const Permutation p2 
)
inline

Permutation multiplication operator.

Parameters
p1The left-hand permutation
p2The right-hand permutation
Returns
The product of p1 and p2 (which is the permutation of p2 by p1).

Definition at line 523 of file permutation.h.

Here is the call graph for this function:

◆ operator*() [2/3]

template<typename T , std::size_t N>
std::array<T,N> TiledArray::symmetry::operator* ( const Permutation perm,
const std::array< T, N > &  a 
)
inline

Permute a std::array.

Template Parameters
TThe element type of the array
NThe size of the array
Parameters
permThe permutation
aThe array to be permuted
Returns
A permuted copy of a
Exceptions
TiledArray::ExceptionWhen the dimension of the permutation is not equal to the size of a.

Definition at line 557 of file permutation.h.

Here is the call graph for this function:

◆ operator*() [3/3]

template<typename T , typename A >
std::vector<T> TiledArray::symmetry::operator* ( const Permutation perm,
const std::vector< T, A > &  v 
)
inline

permute a std::vector<T>

Template Parameters
TThe element type of the vector
AThe allocator type of the vector
Parameters
permThe permutation
vThe vector to be permuted
Returns
A permuted copy of v
Exceptions
TiledArray::ExceptionWhen the dimension of the permutation is not equal to the size of v.

Definition at line 589 of file permutation.h.

Here is the call graph for this function:

◆ operator*=() [1/3]

Permutation& TiledArray::symmetry::operator*= ( Permutation p1,
const Permutation p2 
)
inline

return *this ^ other

Definition at line 529 of file permutation.h.

◆ operator*=() [2/3]

template<typename T , std::size_t N>
std::array<T,N>& TiledArray::symmetry::operator*= ( std::array< T, N > &  a,
const Permutation perm 
)
inline

In-place permute a std::array.

Template Parameters
TThe element type of the array
NThe size of the array
Parameters
[out]aThe array to be permuted
[in]permThe permutation
Returns
A reference to a
Exceptions
TiledArray::ExceptionWhen the dimension of the permutation is not equal to the size of a.

Definition at line 573 of file permutation.h.

Here is the call graph for this function:

◆ operator*=() [3/3]

template<typename T , typename A >
std::vector<T, A>& TiledArray::symmetry::operator*= ( std::vector< T, A > &  v,
const Permutation perm 
)
inline

In-place permute a std::array.

Template Parameters
TThe element type of the vector
AThe allocator type of the vector
Parameters
[out]vThe vector to be permuted
[in]permThe permutation
Returns
A reference to v
Exceptions
TiledArray::ExceptionWhen the dimension of the permutation is not equal to the size of v.

Definition at line 605 of file permutation.h.

Here is the call graph for this function:

◆ operator-()

Permutation TiledArray::symmetry::operator- ( const Permutation perm)
inline

Inverse permutation operator.

Parameters
permThe permutation to be inverted
Returns
perm.inverse()

Definition at line 513 of file permutation.h.

Here is the call graph for this function:

◆ operator<()

bool TiledArray::symmetry::operator< ( const Permutation p1,
const Permutation p2 
)
inline

Permutation less-than operator.

Parameters
p1The left-hand permutation to be compared
p2The right-hand permutation to be compared
Returns
true if the elements of p1 are lexicographically less than that of p2, otherwise false.

Definition at line 491 of file permutation.h.

Here is the call graph for this function:

◆ operator<<()

std::ostream& TiledArray::symmetry::operator<< ( std::ostream &  output,
const Permutation p 
)
inline

Add permutation to an output stream.

Parameters
[out]outputThe output stream
[in]pThe permutation to be added to the output stream
Returns
The output stream

Definition at line 502 of file permutation.h.

Here is the call graph for this function:

◆ operator==()

bool TiledArray::symmetry::operator== ( const Permutation p1,
const Permutation p2 
)
inline

Permutation equality operator.

Parameters
p1The left-hand permutation to be compared
p2The right-hand permutation to be compared
Returns
true if all elements of p1 and p2 are equal and in the same order, otherwise false.

Definition at line 470 of file permutation.h.

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

◆ operator^()

Permutation TiledArray::symmetry::operator^ ( const Permutation perm,
int  n 
)
inline

Raise perm to the n-th power.

Constructs the permutation $ P^n $, where $ P $ is the permutation perm.

Parameters
permThe base permutation
nExponent value
Returns
This permutation raised to the n-th power

Definition at line 540 of file permutation.h.

Here is the call graph for this function: