23namespace nda::lapack {
29 template <BlasArray<2> A, BlasArrayFor<A, 1> TAU, BlasArrayFor<A, 1> W = vector_value_t<A>>
33 if constexpr (std::is_same_v<value_type, float> or std::is_same_v<value_type, double>) {
34 return orgqr(std::forward<A>(a), std::forward<TAU>(tau), std::forward<W>(work));
36 return ungqr(std::forward<A>(a), std::forward<TAU>(tau), std::forward<W>(work));
45 template <BlasArray<3> A, BlasArrayFor<A, 2> TAU, BlasArrayFor<A, 1> W = vector_value_t<A>>
49 if constexpr (std::is_same_v<value_type, float> or std::is_same_v<value_type, double>) {
50 return orgqr_batch(std::forward<A>(a), std::forward<TAU>(tau), std::forward<W>(work));
52 return ungqr_batch(std::forward<A>(a), std::forward<TAU>(tau), std::forward<W>(work));
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.
vector< get_value_t< A >, heap< mem::get_addr_space< A > > > vector_value_t
Alias for an nda::vector with the same value type and address space as the given type.
static constexpr bool has_F_layout
Constexpr variable that is true if all given nda::Array types have nda::F_layout.
int ungqr(A &&a, TAU &&tau, W &&work=vector_value_t< A >{})
Interface to the LAPACK/cuSOLVER ungqr routine.
int orgqr_batch(A &&a, TAU &&tau, W &&work=vector_value_t< A >{})
Interface to batched versions of the LAPACK/cuSOLVER orgqr routine.
int orgqr(A &&a, TAU &&tau, W &&work=vector_value_t< A >{})
Interface to the LAPACK/cuSOLVER orgqr routine.
int ungqr_batch(A &&a, TAU &&tau, W &&work=vector_value_t< A >{})
Interface to batched versions of the LAPACK/cuSOLVER ungqr routine.
int gqr(A &&a, TAU &&tau, W &&work=vector_value_t< A >{})
Dispatcher to nda::lapack::orgqr for real value types and to nda::lapack::ungqr for complex value typ...
Provides a generic interface to the LAPACK/cuSOLVER orgqr routine.
Provides a generic interface to batched versions of the LAPACK/cuSOLVER orgqr routine.
Provides type traits for the nda library.
Provides a generic interface to the LAPACK/cuSOLVER ungqr routine.
Provides a generic interface to batched versions of the LAPACK/cuSOLVER ungqr routine.