-
template<typename T>
void laqp2(integer *m, integer *n, integer *offset, T *a, integer *lda, integer *jpvt, T *tau, T *vn1, T *vn2, T *work)# LAQP2 computes a QR factorization with column pivoting of the matrix block.
Purpose:
LAQP2 computes a QR factorization with column pivoting of the block A(OFFSET+1:M,1:N). The block A(1:OFFSET,1:N) is accordingly pivoted, but not factorized.
- Parameters:
M – [in]
M is INTEGER
The number of rows of the matrix A. M >= 0.
N – [in]
N is INTEGER
The number of columns of the matrix A. N >= 0.
OFFSET – [in]
OFFSET is INTEGER
The number of rows of the matrix A that must be pivoted but no factorized. OFFSET >= 0.
A – [inout]
A is REAL array, dimension (LDA,N)
On entry, the M-by-N matrix A.
On exit, the upper triangle of block A(OFFSET+1:M,1:N) is the triangular factor obtained; the elements in block A(OFFSET+1:M,1:N) below the diagonal, together with the array TAU, represent the orthogonal matrix Q as a product of elementary reflectors. Block A(1:OFFSET,1:N) has been accordingly pivoted, but no factorized.LDA – [in]
LDA is INTEGER
The leading dimension of the array A. LDA >= fla_max(1,M).
JPVT – [inout]
JPVT is INTEGER array, dimension (N)
On entry, if JPVT(i) .ne. 0, the i-th column of A is permuted to the front of A*P (a leading column); if JPVT(i) = 0, the i-th column of A is a free column.
On exit, if JPVT(i) = k, then the i-th column of A*P was the k-th column of A.TAU – [out]
TAU is REAL array, dimension (min(M,N))
The scalar factors of the elementary reflectors.
VN1 – [inout]
VN1 is REAL array, dimension (N)
The vector with the partial column norms.
VN2 – [inout]
VN2 is REAL array, dimension (N)
The vector with the exact column norms.
WORK – [out] WORK is REAL array, dimension (N)