TRIQS/nda 1.3.0
Multi-dimensional array library for C++
Loading...
Searching...
No Matches
nda::NdaSymmetry Concept Reference

#include <nda/sym_grp.hpp>

Detailed Description

Concept defining a symmetry in nda.

A symmetry consists of a callable type that can be called with a multi-dimensional index with the same rank as a given array type and returns a tuple with a new multi-dimensional index and an nda::operation.

The returned index corresponds to an element which is related to the element at the input index by the symmetry.

The returned operation describes how the values of the elements are related, i.e. either via a sign flip, a complex conjugation, or both.

Template Parameters
FCallable type.
Anda::Array type.
IdxMulti-dimensional index type.

Definition at line 111 of file sym_grp.hpp.

Concept definition

template<typename F, typename A, typename Idx std::array<long, static_cast<std::size_t>(get_rank<A>)>>
concept nda::NdaSymmetry = Array<A> and requires(F f, Idx const &idx) {
{ f(idx) } -> std::same_as<std::tuple<Idx, operation>>;
}
Check if a given type satisfies the array concept.
Definition concepts.hpp:230
Concept defining a symmetry in nda.
Definition sym_grp.hpp:111
constexpr int get_rank
Constexpr variable that specifies the rank of an nda::Array or of a contiguous 1-dimensional range.
Definition traits.hpp:136