42 template <
typename X,
typename Y>
43 auto dot(X &&x, Y &&y) {
47 static_assert(L_adr_spc != mem::None);
48 static_assert(R_adr_spc != mem::None);
57 auto as_container = []<
typename A>(A
const &a) ->
decltype(
auto) {
64 return blas::dot(as_container(x), as_container(y));
85 template <
typename X,
typename Y>
90 static_assert(L_adr_spc != mem::None);
91 static_assert(R_adr_spc != mem::None);
100 auto as_container = []<
typename A>(A
const &a) ->
decltype(
auto) {
107 return blas::dotc(as_container(x), as_container(y));
Provides definitions and type traits involving the different memory address spaces supported by nda.
Provides a generic interface to the BLAS dot routine.
A generic multi-dimensional array.
Provides various convenient aliases and helper functions for nda::basic_array and nda::basic_array_vi...
std::decay_t< decltype(get_first_element(std::declval< A const >()))> get_value_t
Get the value type of an array/view or a scalar type.
constexpr bool is_regular_or_view_v
Constexpr variable that is true if type A is either a regular array or a view.
auto dot_generic(X const &x, Y const &y)
Generic implementation of nda::blas::dot for types not supported by BLAS/LAPACK.
auto dotc(X const &x, Y const &y)
Interface to the BLAS dotc routine.
auto dotc_generic(X const &x, Y const &y)
Generic implementation of nda::blas::dotc for types not supported by BLAS/LAPACK.
auto dot(X const &x, Y const &y)
Interface to the BLAS dot routine.
static constexpr AddressSpace get_addr_space
Variable template providing the address space for different types.
heap_basic< mem::mallocator< AdrSp > > heap
Alias template of the nda::heap_basic policy using an nda::mem::mallocator.
constexpr bool is_blas_lapack_v
Alias for nda::is_double_or_complex_v.
Provides definitions of various layout policies.
Defines various memory handling policies.
Contiguous layout policy with C-order (row-major order).