ZGGQRF(3)
π ZGGQRF(3): Library Functions Manual, LAPACK 3.12.0 π
okay so bestie, you're looking at zggqrf.f(3) from the LAPACK source tree, and the manual name is Library Functions Manual. This is the whole glow-up page for ZGGQRF, no cap. π«Ά
πΈ NAME πΈ
This icon lives at:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zggqrf.f
β¨ SYNOPSIS β¨
π Functions/Subroutines π
subroutine ZGGQRF (n, m, p, a, lda, taua, b, ldb, taub, work, lwork, info)βZGGQRF
subroutine ZGGQRF (n, m, p, a, lda, taua, b, ldb, taub, work, lwork,
info)
ZGGQRF
π₯ Function/Subroutine Documentation π₯
subroutine ZGGQRF (integer n, integer m, integer p, complex*16, dimension(
lda, * ) a, integer lda, complex*16, dimension( * ) taua, complex*16,
dimension( ldb, * ) b, integer ldb, complex*16, dimension( * ) taub,
complex*16, dimension( * ) work, integer lwork, integer info)
ZGGQRF
π¦ Purpose π¦
Bestie, ZGGQRF computes a generalized QR factorization of an N-by-M matrix A and an N-by-P matrix B:
A = Q*R, B = Q*T*Z,
where Q is an N-by-N unitary matrix, Z is a P-by-P unitary matrix, and R and T assume one of the forms:
if N >= M, R = ( R11 ) M , or if N < M, R = ( R11 R12 ) N,
( 0 ) N-M N M-N
M
where R11 is upper triangular, and
if N <= P, T = ( 0 T12 ) N, or if N > P, T = ( T11 ) N-P,
P-N N ( T21 ) P
P
where T12 or T21 is upper triangular.
In particular, if B is square and nonsingular, the GQR factorization of A and B implicitly gives the QR factorization of inv(B)*A:
inv(B)*A = Z**H * (inv(T)*R)
where inv(B) denotes the inverse of the matrix B, and Z**H denotes the conjugate transpose of matrix Z.
π Parameters π
NβINTEGER. The number of rows of the matrices A and B.N >= 0.MβINTEGER. The number of columns of the matrix A.M >= 0.PβINTEGER. The number of columns of the matrix B.P >= 0.AβCOMPLEX*16 array, dimension (LDA,M). On entry, the N-by-M matrix A. On exit, the elements on and above the diagonal of the array contain themin(N,M)-by-M upper trapezoidal matrix R (R is upper triangular ifN >= M); the elements below the diagonal, with the arrayTAUA, represent the unitary matrix Q as a product ofmin(N,M)elementary reflectors (see Further Details).LDAβINTEGER. The leading dimension of the array A.LDA >= max(1,N).TAUAβCOMPLEX*16 array, dimension (min(N,M)). The scalar factors of the elementary reflectors which represent the unitary matrix Q (see Further Details).BβCOMPLEX*16 array, dimension (LDB,P). On entry, the N-by-P matrix B. On exit, ifN <= P, the upper triangle of the subarrayB(1:N,P-N+1:P)contains the N-by-N upper triangular matrix T; ifN > P, the elements on and above the(N-P)-th subdiagonal contain the N-by-P upper trapezoidal matrix T; the remaining elements, with the arrayTAUB, represent the unitary matrix Z as a product of elementary reflectors (see Further Details).LDBβINTEGER. The leading dimension of the array B.LDB >= max(1,N).TAUBβCOMPLEX*16 array, dimension (min(N,P)). The scalar factors of the elementary reflectors which represent the unitary matrix Z (see Further Details).WORKβCOMPLEX*16 array, dimension (MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβINTEGER. The dimension of the array WORK.LWORK >= max(1,N,M,P). For optimum performanceLWORK >= max(N,M,P)*max(NB1,NB2,NB3), where NB1 is the optimal blocksize for the QR factorization of an N-by-M matrix, NB2 is the optimal blocksize for the RQ factorization of an N-by-P matrix, and NB3 is the optimal blocksize for a call ofZUNMQR.
If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA.
INFOβINTEGER.= 0: successful exit< 0: ifINFO = -i, the i-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(n,m).
Each H(i) has the form
H(i) = I - taua * v * v**H
where taua is a complex scalar, and v is a complex vector with v(1:i-1) = 0 and v(i) = 1; v(i+1:n) is stored on exit in A(i+1:n,i), and taua in TAUA(i). To form Q explicitly, use LAPACK subroutine ZUNGQR. To use Q to update another matrix, use LAPACK subroutine ZUNMQR.
The matrix Z is represented as a product of elementary reflectors
Z = H(1) H(2) . . . H(k), where k = min(n,p).
Each H(i) has the form
H(i) = I - taub * v * v**H
where taub is a complex scalar, and v is a complex vector with v(p-k+i+1:p) = 0 and v(p-k+i) = 1; v(1:p-k+i-1) is stored on exit in B(n-k+i,1:p-k+i-1), and taub in TAUB(i). To form Z explicitly, use LAPACK subroutine ZUNGRQ. To use Z to update another matrix, use LAPACK subroutine ZUNMRQ.
Definition at line 213 of file zggqrf.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
okay bye bestie! This page is signed by LAPACK Version 3.12.0, and the footer cutie path is /home/abui...RC/zggqrf.f(3). π
β¨π
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms