|
template<typename Gen_ > |
void | add (Gen_) |
|
void | add (int one, int two, int flags=0) |
|
void | addAntiHermiticity (int one, int two) |
|
void | addAntiSymmetry (int one, int two) |
|
void | addHermiticity (int one, int two) |
|
void | addSymmetry (int one, int two) |
|
template<typename Op , typename RV , typename Index , std::size_t N, typename... Args> |
RV | apply (const std::array< Index, N > &idx, RV initial, Args &&... args) const |
|
template<typename Op , typename RV , typename Index , typename... Args> |
RV | apply (const std::vector< Index > &idx, RV initial, Args &&... args) const |
|
| DynamicSGroup () |
|
| DynamicSGroup (const DynamicSGroup &o) |
|
| DynamicSGroup (DynamicSGroup &&o) |
|
int | globalFlags () const |
|
template<typename Tensor_ > |
internal::tensor_symmetry_value_setter< Tensor_, DynamicSGroup > | operator() (Tensor_ &tensor, std::array< typename Tensor_::Index, Tensor_::NumIndices > const &indices) const |
|
template<typename Tensor_ , typename... IndexTypes> |
internal::tensor_symmetry_value_setter< Tensor_, DynamicSGroup > | operator() (Tensor_ &tensor, typename Tensor_::Index firstIndex, IndexTypes... otherIndices) const |
|
DynamicSGroup & | operator= (const DynamicSGroup &o) |
|
DynamicSGroup & | operator= (DynamicSGroup &&o) |
|
std::size_t | size () const |
|
|
int | findElement (GroupElement e) const |
|
GroupElement | ge (Generator const &g) const |
|
template<typename Index , std::size_t N, int... n> |
std::array< Index, N > | h_permute (std::size_t which, const std::array< Index, N > &idx, internal::numeric_list< int, n... >) const |
|
template<typename Index > |
std::vector< Index > | h_permute (std::size_t which, std::vector< Index > idx) const |
|
GroupElement | mul (Generator g1, Generator g2) const |
|
GroupElement | mul (Generator g1, GroupElement g2) const |
|
GroupElement | mul (GroupElement g1, Generator g2) const |
|
GroupElement | mul (GroupElement, GroupElement) const |
|
void | updateGlobalFlags (int flagDiffOfSameGenerator) |
|
Dynamic symmetry group.
The DynamicSGroup class represents a symmetry group that need not be known at compile time. It is useful if one wants to support arbitrary run-time defineable symmetries for tensors, but it is also instantiated if a symmetry group is defined at compile time that would be either too large for the compiler to reasonably generate (using templates to calculate this at compile time is very inefficient) or that the compiler could generate the group but that it wouldn't make sense to unroll the loop for setting coefficients anymore.
Definition at line 17 of file DynamicSymmetry.h.