TRIQS/nda 1.3.0
Multi-dimensional array library for C++
|
#include "./concepts.hpp"
#include "./declarations.hpp"
#include "./group_indices.hpp"
#include "./layout/idx_map.hpp"
#include "./layout/permutation.hpp"
#include "./layout/policies.hpp"
#include "./map.hpp"
#include "./stdutil/array.hpp"
#include "./traits.hpp"
#include <array>
#include <concepts>
#include <type_traits>
#include <utility>
#include <numeric>
Provides functions to transform the memory layout of an nda::basic_array or nda::basic_array_view.
Definition in file layout_transforms.hpp.
Go to the source code of this file.
Functions | |
template<MemoryArray A> | |
auto | nda::flatten (A &&a) |
Flatten an nda::basic_array or nda::basic_array_view to a 1-dimensional array/view by reshaping it. | |
template<MemoryArray A, typename... IdxGrps> | |
auto | nda::group_indices_view (A &&a, IdxGrps...) |
Create a new nda::basic_array or nda::basic_array_view by grouping indices together of a given array/view. | |
template<MemoryArray A, typename NewLayoutType > | |
auto | nda::map_layout_transform (A &&a, NewLayoutType const &new_layout) |
Transform the memory layout of an nda::basic_array or nda::basic_array_view. | |
template<uint64_t Permutation, MemoryArray A> | |
auto | nda::permuted_indices_view (A &&a) |
Permute the indices/dimensions of an nda::basic_array or nda::basic_array_view. | |
template<int N, typename A > requires (nda::is_regular_or_view_v<A>) | |
auto | nda::reinterpret_add_fast_dims_of_size_one (A &&a) |
Add N fast varying dimensions of size 1 to a given nda::basic_array or nda::basic_array_view. | |
template<MemoryArray A, std::integral... Ints> | |
auto | nda::reshape (A &&a, Ints... is) |
Reshape an nda::basic_array or nda::basic_array_view. | |
template<MemoryArray A, std::integral Int, auto R> | |
auto | nda::reshape (A &&a, std::array< Int, R > const &new_shape) |
Reshape an nda::basic_array or nda::basic_array_view. | |
template<MemoryArray A, std::integral Int, auto newRank> | |
auto | nda::reshaped_view (A &&a, std::array< Int, newRank > const &new_shape) |
template<typename A > requires (MemoryArray<A> or is_instantiation_of_v<expr_call, A>) | |
auto | nda::transpose (A &&a) |
Transpose the memory layout of an nda::MemoryArray or an nda::expr_call. | |
template<int I, int J, MemoryArray A> requires (is_regular_or_view_v<A>) | |
auto | nda::transposed_view (A &&a) |
Transpose two indices/dimensions of an nda::basic_array or nda::basic_array_view. | |