SRC/dgerqf.f(3)
π NAME π
SRC/dgerqf.f β this page is from the Library Functions Manual, and itβs literally all about DGERQF, bestie. π
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine dgerqf (m, n, a, lda, tau, work, lwork, info)
DGERQF π
π οΈ Function/Subroutine Documentation π οΈ
subroutine dgerqf (integer m, integer n, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( * ) tau, double precision, dimension( * ) work, integer lwork, integer info)
DGERQF β say it with me, iconic.
Purpose π
Okay so DGERQF computes an RQ factorization of a real M-by-N matrix A:
A = R * Q.
Thatβs the whole main-character move. β¨
Parameters πΈ
MβMisINTEGER. Itβs the number of rows of the matrixA, and it has to beM >= 0. Count those rows, bestie. π«ΆNβNisINTEGER. Itβs the number of columns of the matrixA, and it has to beN >= 0. Columns said βwe exist too.β πAβAisDOUBLE PRECISION array, dimension (LDA,N). On entry, itβs the M-by-N matrixA. On exit, lowkey a lot happens:- if
m <= n, the upper triangle of the subarrayA(1:m,n-m+1:n)contains the M-by-M upper triangular matrixR; - if
m >= n, the elements on and above the(m-n)-th subdiagonal contain the M-by-N upper trapezoidal matrixR; - the remaining elements, with the array
TAU, represent the orthogonal matrixQas a product ofmin(m,n)elementary reflectors (see Further Details). No cap, thatβs the whole glow-up. π₯
- if
LDAβLDAisINTEGER. Itβs the leading dimension of the arrayA, and it needsLDA >= max(1,M). Respect the leading dimension, periodt. πTAUβTAUisDOUBLE PRECISION array, dimension (min(M,N)). These are the scalar factors of the elementary reflectors (see Further Details). Little scalars, big responsibilities. π¦WORKβWORKisDOUBLE PRECISION array, dimension (MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK. Cute, right? πLWORKβLWORKisINTEGER. Itβs the dimension of the arrayWORK.LWORK >= 1, ifMIN(M,N) = 0, andLWORK >= M, otherwise.- For optimum performance
LWORK >= M*NB, whereNBis the optimal blocksize. - If
LWORK = -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 workspace-query vibe check. β¨
INFOβINFOisINTEGER.= 0: successful exit, slay.< 0: ifINFO = -i, thei-th argument had an illegal value. Not slay. π
Bestie, theLWORKrules are not decorative. Keep them exact.LWORK = -1is a whole special mode, okay? π
Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Further Details π
Okay, hereβs the lore. 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**T
where tau is a real scalar, and v is a real vector with
v(n-k+i+1:n) = 0 and v(n-k+i) = 1; v(1:n-k+i-1) is stored on exit in
A(m-k+i,1:n-k+i-1), and tau in TAU(i).
Thatβs the whole reflectors situation, and honestly it ate. π
Definition at line 138 of file dgerqf.f. π
Yep, line 138 of dgerqf.f. Not me knowing the exact line number and feeling famous. π
Author (the footer-ish one) π«Ά
Generated automatically by Doxygen for LAPACK from the source code. The robots made this page, and they understood the assignment. π€β¨
Sign-off vibes: this page is from LAPACK, Version 3.12.0, and the file is SRC/dgerqf.f(3) β no date listed, bestie. πππ¦
π¦ 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