SRC/zgeqp3.f(3)
π zgeqp3.f manual page π
okay so this is SRC/zgeqp3.f(3), and it comes from the Library Functions Manual. It's giving "LAPACK bestie explains QR with column pivoting" and we are keeping every single fact, no cap. Let's go. π
πΈ NAME πΈ
SRC/zgeqp3.f
That's the name, bestie. The file said "I'll name myself after myself" and honestly? Iconic. π
β¨ SYNOPSIS β¨
π«Ά Functions/Subroutines π«Ά
subroutine zgeqp3 (m, n, a, lda, jpvt, tau, work, lwork, rwork, info)
ZGEQP3
π Function/Subroutine Documentation π
Here's the full signature exactly as it lives, because we do not mess with types or argument order. Periodt.
subroutine zgeqp3 (integer m, integer n, complex*16, dimension( lda, * ) a,
integer lda, integer, dimension( * ) jpvt, complex*16, dimension( * )
tau, complex*16, dimension( * ) work, integer lwork, double precision,
dimension( * ) rwork, integer info)
ZGEQP3
π¦ Purpose π¦
ZGEQP3 computes a QR factorization with column pivoting of a matrix A:
A*P = Q*R
using Level 3 BLAS. The way that's just the whole purpose, bestie β QR, column pivoting, Level 3 BLAS, slay. β¨
π Parameters π
M
M is INTEGER. It's the number of rows of the matrix A, and M >= 0.
N
N is INTEGER. It's the number of columns of the matrix A, and N >= 0.
A
A is COMPLEX*16 array, dimension (LDA,N).
On entry, it's the M-by-N matrix A.
On exit, the upper triangle of the array contains the min(M,N)-by-N upper trapezoidal matrix R; the elements below the diagonal, together with the array TAU, represent the unitary matrix Q as a product of min(M,N) elementary reflectors. π¦
LDA
LDA is INTEGER. It's the leading dimension of the array A, and LDA >= max(1,M).
JPVT
JPVT is INTEGER array, dimension (N).
On entry, if JPVT(J).ne.0, the J-th column of A is permuted to the front of A*P (a leading column); if JPVT(J)=0, the J-th column of A is a free column.
On exit, if JPVT(J)=K, then the J-th column of A*P was the K-th column of A. Bestie, it's giving "column lore" and we respect it. π
TAU
TAU is COMPLEX*16 array, dimension (min(M,N)). It holds the scalar factors of the elementary reflectors.
WORK
WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)).
On exit, if INFO=0, WORK(1) returns the optimal LWORK.
LWORK
LWORK is INTEGER. It's the dimension of the array WORK, and LWORK >= N+1.
For optimal performance LWORK >= ( N+1 )*NB, where NB is the optimal blocksize.
IfLWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of theWORKarray, returns this value as the first entry of theWORKarray, and no error message related toLWORKis issued byXERBLA. That's the whole vibe check onLWORK = -1. π«Ά
RWORK
RWORK is DOUBLE PRECISION array, dimension (2*N).
INFO
INFO is INTEGER.
= 0: successful exit.< 0: ifINFO = -i, thei-th argument had an illegal value.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π₯ Further Details π₯
The matrix Q is represented as a product of elementary reflectors:
Q = H(1) H(2) . . . H(k), where k = min(m,n).
Each H(i) has the form:
H(i) = I - tau * v * v**H
where tau is a complex scalar, and v is a real/complex vector with v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i), and tau in TAU(i). That's the whole reflector situation, and yes it ate. π₯
π Contributors π
- G. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain
- X. Sun, Computer Science Dept., Duke University, USA
Definition at line 157 of file zgeqp3.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
That's the whole page, bestie! π Final sign-off vibes: LAPACK Version 3.12.0 Β· SRC/zgeqp3.f(3). Date? Not on this footer β just the version and the page. Mwah π
π
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms