TRIQS/nda 1.3.0
Multi-dimensional array library for C++
Loading...
Searching...
No Matches
nda.hpp
Go to the documentation of this file.
1// Copyright (c) 2019-2024 Simons Foundation
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0.txt
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15// Authors: Thomas Hahn, Olivier Parcollet, Nils Wentzell
16
22#pragma once
23
24#ifdef NDA_DEBUG
25#define NDA_ENFORCE_BOUNDCHECK
26#endif
27
28// FIXME : REMOVE THIS ?
29// for python code generator, we need to know what to include...
30#define TRIQS_INCLUDED_ARRAYS
31
32#include "./accessors.hpp"
33#include "./algorithms.hpp"
34#include "./arithmetic.hpp"
35#include "./array_adapter.hpp"
37#include "./basic_array.hpp"
38#include "./basic_functions.hpp"
39#include "./clef.hpp"
40#include "./concepts.hpp"
41#include "./declarations.hpp"
42#include "./device.hpp"
43#include "./exceptions.hpp"
44#include "./group_indices.hpp"
45#include "./iterators.hpp"
47#include "./layout.hpp"
48#include "./linalg.hpp"
49#include "./macros.hpp"
50#include "./map.hpp"
54#include "./mem.hpp"
55#include "./print.hpp"
56#include "./stdutil.hpp"
57#include "./traits.hpp"
58
59// If we are using c2py, include converters automatically
60#ifdef C2PY_INCLUDED
61#include <nda_py/c2py_converters.hpp>
62#endif
Defines accessors for nda::array objects (cf. std::default_accessor).
Provides various algorithms to be used with nda::Array objects.
Provides lazy expressions for nda::Array types.
Provides an array adapter class.
Provides the generic class for arrays.
Provides the generic class for views.
Provides basic functions to create and manipulate arrays and views.
Includes all clef relevant headers.
Provides concepts for the nda library.
Provides various convenient aliases and helper functions for nda::basic_array and nda::basic_array_vi...
Provides GPU and non-GPU specific functionality.
Provides a custom runtime error class and macros to assert conditions and throw exceptions.
Provides functions used in nda::group_indices_view.
Provides an iterator for nda::basic_array and nda::basic_array_view types.
Includes all memory layout relevant headers.
Provides functions to transform the memory layout of an nda::basic_array or nda::basic_array_view.
Includes all relevant headers for the linear algebra functionality.
Macros used in the nda library.
Provides lazy function calls on arrays/views.
Provides some custom implementations of standard mathematical functions used for lazy,...
Provides lazy, coefficient-wise array operations of standard mathematical functions together with ove...
Provides functions to create and manipulate matrices, i.e. arrays/view with 'M' algebra.
Includes all relevant headers for memory allocation and management.
Provides various overloads of the operator<< for nda related objects.
Includes all stdutil relevant headers.
Provides type traits for the nda library.