53 template <
typename X,
typename Y>
54 auto dot(X &&x, Y &&y) {
58 static_assert(L_adr_spc != mem::None);
59 static_assert(R_adr_spc != mem::None);
68 auto as_container = []<
typename A>(A
const &a) ->
decltype(
auto) {
75 return blas::dot(as_container(x), as_container(y));
96 template <
typename X,
typename Y>
101 static_assert(L_adr_spc != mem::None);
102 static_assert(R_adr_spc != mem::None);
111 auto as_container = []<
typename A>(A
const &a) ->
decltype(
auto) {
118 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.
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).
Memory policy using an nda::mem::handle_heap.