KokkosLapack::gemqr¶
Defined in header: KokkosLapack_gemqr.hpp
template <class ExecutionSpace, class AMatrix, class TauArray, class CMatrix, class InfoArray>
void gemqr(const ExecutionSpace& space, const char side[], const char trans[], const AMatrix& A, const TauArray& Tau,
const CMatrix& C, const InfoArray& Info);
template <class AMatrix, class TauArray, class CMatrix, class InfoArray>
void gemqr(const char side[], const char trans[], const AMatrix& A, const TauArray& Tau, const CMatrix& C,
const InfoArray& Info);
Applies the Q factor from the QR factorization of matrix \(A\) to matrix \(C\) using the prescribed side and operation
where \(A\) is a matrix previously factored using a call to geqrf and \(Tau\) stores the associated scaling factors.
Overwrites \(C\) with the \(Q*C\) using the resources of
space.Same as 1. but uses the resources of the default execution space from
CMatrix::execution_space.
The function will throw a runtime exception if the size of \(C\) is incompatible with that of \(Q\).
Parameters¶
- space:
execution space instance.
- side:
control parameter specifying on which side the solver is applied, supported values are
L, lfor left side andR, rfor right side.- trans:
control parameter specifying what operation on the entries of \(Q\) should be performed. Supported values are
N, nfor nothing,T, tfor transpose mode andC, cfor conjugate transpose mode.- A:
The input matrix that contains the \(QR\) factors from a previous call to
geqrf.- Tau:
rank-1 view of size min(M,N) that contains the scaling factors of the elementary reflectors.
- C:
The matrix to which we multiply the \(Q\) factor.
- Info:
rank-1 view of integers and of size 1: Info[0] = 0: successful exit; Info[0] < 0: if equal to ‘-i’, the i-th argument had an illegal value.
Type Requirements¶
ExecutionSpace must be a Kokkos execution space
AMatrix must be a Kokkos View of rank 2 that satisfies
Kokkos::SpaceAccessibility<ExecutionSpace, typename AMatrix::memory_space>::accessible
Tau must be a Kokkos View of rank 1 that satisfies
Kokkos::SpaceAccessibility<ExecutionSpace, typename Tau::memory_space>::accessible
CMatrix must be a Kokkos View of rank 2 that satisfies
Kokkos::SpaceAccessibility<ExecutionSpace, typename CMatrix::memory_space>::accessible
Info must be a Kokkos View of rank 1 that satisfies
Kokkos::SpaceAccessibility<ExecutionSpace, typename Info::memory_space>::accessible
Example¶
TBD