TRIQS/nda 1.3.0
Multi-dimensional array library for C++
|
#include "../macros.hpp"
#include "../stdutil/array.hpp"
#include "../stdutil/concepts.hpp"
#include <algorithm>
#include <array>
#include <concepts>
#include <cstddef>
#include <cstdint>
Provides utilities to work with permutations and to compactly encode/decode std::array objects.
Definition in file permutation.hpp.
Go to the source code of this file.
Functions | |
template<typename T , std::integral Int, size_t N> | |
constexpr std::array< T, N > | nda::permutations::apply (std::array< Int, N > const &p, std::array< T, N > const &a) |
Apply a permutation to a std::array. | |
template<typename T , std::integral Int, size_t N> | |
constexpr std::array< T, N > | nda::permutations::apply_inverse (std::array< Int, N > const &p, std::array< T, N > const &a) |
Apply the inverse of a permutation to a std::array. | |
template<std::integral Int, size_t N> | |
constexpr std::array< Int, N > | nda::permutations::compose (std::array< Int, N > const &p1, std::array< Int, N > const &p2) |
Composition of two permutations. | |
template<size_t N> | |
constexpr std::array< int, N > | nda::permutations::cycle (int p, int pos=N) |
Perform a forward (partial) cyclic permutation of the identity p times. | |
template<size_t N> | |
constexpr std::array< int, N > | nda::decode (uint64_t binary_representation) |
Decode a uint64_t into a std::array<int, N> . | |
template<size_t N> | |
constexpr uint64_t | nda::encode (std::array< int, N > const &a) |
Encode a std::array<int, N> in a uint64_t . | |
template<size_t N> | |
constexpr std::array< int, N > | nda::permutations::identity () |
Get the identity permutation. | |
template<std::integral Int, size_t N> | |
constexpr std::array< Int, N > | nda::permutations::inverse (std::array< Int, N > const &p) |
Inverse of a permutation. | |
template<std::integral Int, size_t N> | |
constexpr bool | nda::permutations::is_valid (std::array< Int, N > const &p) |
Check if a given array is a valid permutation. | |
template<size_t N> | |
constexpr std::array< int, N > | nda::permutations::reverse_identity () |
Get the reverse identity permutation. | |
template<size_t N> | |
constexpr std::array< int, N > | nda::permutations::transposition (int i, int j) |
Get the permutation representing a single given transposition. | |