TRIQS/nda 1.3.0
Multi-dimensional array library for C++
|
Provides definitions and type traits involving the different memory address spaces supported by nda.
Definition in file address_space.hpp.
Go to the source code of this file.
Enumerations | |
enum class | nda::mem::AddressSpace |
Enum providing identifiers for the different memory address spaces. More... | |
Variables | |
template<AddressSpace... AdrSpcs> | |
static const auto | nda::mem::check_adr_sp_valid |
Check validity of a set of nda::mem::AddressSpace values. | |
template<AddressSpace A1, AddressSpace A2 = None, AddressSpace... As> | |
constexpr AddressSpace | nda::mem::combine |
Promotion rules for nda::mem::AddressSpace values. | |
template<MemoryArray A1, MemoryArray... As> | |
constexpr AddressSpace | nda::mem::common_addr_space = combine<get_addr_space<A1>, get_addr_space<As>...> |
Get common address space for a number of given nda::MemoryArray types. | |
template<typename T > | |
static constexpr AddressSpace | nda::mem::get_addr_space = mem::None |
Variable template providing the address space for different types. | |
template<MemoryArray A> | |
static constexpr AddressSpace | nda::mem::get_addr_space< A > = A::storage_t::address_space |
Specialization of nda::mem::get_addr_space for nda::Memory Array types. | |
template<char OP, ArrayOrScalar L, ArrayOrScalar R> | |
static constexpr AddressSpace | nda::mem::get_addr_space< expr< OP, L, R > > = combine<get_addr_space<L>, get_addr_space<R>> |
Specialization of nda::mem::get_addr_space for binary expressions involving two nda::ArrayOrScalar types. | |
template<typename F , Array... As> | |
static constexpr AddressSpace | nda::mem::get_addr_space< expr_call< F, As... > > = combine<get_addr_space<As>...> |
Specialization of nda::mem::get_addr_space for function call expressions involving nda::Array types. | |
template<char OP, Array A> | |
static constexpr AddressSpace | nda::mem::get_addr_space< expr_unary< OP, A > > = get_addr_space<A> |
Specialization of nda::mem::get_addr_space for unary expressions involving an nda::Array type. | |
template<Handle H> | |
static constexpr AddressSpace | nda::mem::get_addr_space< H > = H::address_space |
Specialization of nda::mem::get_addr_space for nda::Handle types. | |
template<typename... Ts> | |
static constexpr bool | nda::mem::have_compatible_addr_space = (have_host_compatible_addr_space<Ts...> or have_device_compatible_addr_space<Ts...>) |
Constexpr variable that is true if all given types have compatible address spaces. | |
template<typename... Ts> | |
static constexpr bool | nda::mem::have_device_compatible_addr_space = ((on_device<Ts> or on_unified<Ts>)and...) |
Constexpr variable that is true if all given types have an address space compatible with Device . | |
template<typename... Ts> | |
static constexpr bool | nda::mem::have_host_compatible_addr_space = ((on_host<Ts> or on_unified<Ts>)and...) |
Constexpr variable that is true if all given types have an address space compatible with Host . | |
template<typename A0 , typename... A> | |
static constexpr bool | nda::mem::have_same_addr_space = ((get_addr_space<A0> == get_addr_space<A>)and... and true) |
Constexpr variable that is true if all given types have the same address space. | |
template<typename... Ts> | |
static constexpr bool | nda::mem::on_device = ((get_addr_space<Ts> == mem::Device) and ...) |
Constexpr variable that is true if all given types have a Device address space. | |
template<typename... Ts> | |
static constexpr bool | nda::mem::on_host = ((get_addr_space<Ts> == mem::Host) and ...) |
Constexpr variable that is true if all given types have a Host address space. | |
template<typename... Ts> | |
static constexpr bool | nda::mem::on_unified = ((get_addr_space<Ts> == mem::Unified) and ...) |
Constexpr variable that is true if all given types have a Unified address space. | |