TRIQS/nda 1.3.0
Multi-dimensional array library for C++
|
Tools to use and detect symmetries in nda::Array objects.
Here is a simple example of how symmetries can be used in nda:
Output:
It first creates a hermitian matrix A
and uses the symmetry h_symmetry
, i.e. A(i, j) = std::conj(A(j, i))
, to construct the corresponding symmetry group. The symmetry group can then be used to initialize other arrays, get the representative data of an array with the same symmetry and more.
Concepts | |
concept | nda::NdaSymmetry |
Concept defining a symmetry in nda. | |
concept | nda::NdaInitFunc |
Concept defining an initializer function. | |
Classes | |
struct | nda::operation |
A structure to capture combinations of complex conjugation and sign flip operations. More... | |
class | nda::sym_grp< F, A > |
Class representing a symmetry group. More... | |
Functions | |
template<Array A> | |
bool | nda::is_valid (A const &a, std::array< long, static_cast< std::size_t >(get_rank< A >)> const &idx) |
Check if a multi-dimensional index is valid, i.e. not out of bounds, w.r.t. to a given nda::Array object. | |
bool nda::is_valid | ( | A const & | a, |
std::array< long, static_cast< std::size_t >(get_rank< A >)> const & | idx ) |
#include <nda/sym_grp.hpp>
Check if a multi-dimensional index is valid, i.e. not out of bounds, w.r.t. to a given nda::Array object.
A | nda::Array type. |
a | nda::Array object. |
idx | Multi-dimensional index. |
Definition at line 88 of file sym_grp.hpp.