CRQT02(3)
π NAME π
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/crqt02.f
ok so bestie, this is a page out of the Library Functions Manual, and it's all about one very specific little Fortran file living way, way down in the TESTING/LIN folder of LAPACK. yes, the whole path is the name. she's got main character energy AND a very long address π
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine CRQT02 (m, n, k, a, af, q, r, lda, tau, work, lwork, rwork,
result)
CRQT02 β that's her, that's the one πΈ
π¦ Function/Subroutine Documentation π¦
subroutine CRQT02 (integer m, integer n, integer k, complex, dimension( lda,
* ) a, complex, dimension( lda, * ) af, complex, dimension( lda, * ) q,
complex, dimension( lda, * ) r, integer lda, complex, dimension( * )
tau, complex, dimension( lwork ) work, integer lwork, real, dimension( *
) rwork, real, dimension( * ) result)
CRQT02 (yes, again, she's iconic like that π
)
π§ Purpose π§
CRQT02 tests CUNGRQ, which generates an m-by-n matrix Q with orthonormal rows that is defined as the product of k elementary reflectors. Given the RQ factorization of an m-by-n matrix A, CRQT02 generates the orthogonal matrix Q defined by the factorization of the last k rows of A; it compares R(m-k+1:m,n-m+1:n) with A(m-k+1:m,1:n)*Q(n-m+1:n,1:n)', and checks that the rows of Q are orthonormal.
so basically this subroutine is a vibe checker for CUNGRQ ngl π she builds Q from the last k rows of A, then does the math-comparison thing with R(m-k+1:m,n-m+1:n) vs A(m-k+1:m,1:n)*Q(n-m+1:n,1:n)', and on top of that she confirms the rows of Q are actually orthonormal. lowkey a full-time job π
π Parameters π
MβMisINTEGER, and it's the number of rows of the matrix Q we're generating.M >= 0. no negatives bestie, we don't do that here π«ΆNβNisINTEGER, the number of columns of the matrix Q being generated. The constraint isN >= M >= 0, so likeβ¦ N has to be at least M, and M has to be at least zero. chain of respect fr fr.KβKisINTEGER, the number of elementary reflectors whose product defines the matrix Q. Rule:M >= K >= 0. she's sandwiched between M and zero, periodt.AβAisCOMPLEX array, dimension (LDA,N). It's the m-by-n matrix A which was factorized byCRQT01. πAFβAFisCOMPLEX array, dimension (LDA,N). This one holds the details of the RQ factorization of A, as returned byCGERQF. "SeeCGERQFfor further details" β iykyk, go read that one too πQβQisCOMPLEX array, dimension (LDA,N). that's the star of the show β¨RβRisCOMPLEX array, dimension (LDA,M). note theMbestie, notNπLDAβLDAisINTEGER, the leading dimension of the arrays A, AF, Q and L. Requirement:LDA >= N. (yes the doc says "L" β we're just reporting what she said π)TAUβTAUisCOMPLEX array, dimension (M). These are the scalar factors of the elementary reflectors corresponding to the RQ factorization inAF. πWORKβWORKisCOMPLEX array, dimension (LWORK). workspace, she works.LWORKβLWORKisINTEGER, the dimension of the arrayWORK. that's the whole description, she's a woman of few words πRWORKβRWORKisREAL array, dimension (M). real ones only π―RESULTβRESULTisREAL array, dimension (2)β the test ratios, and there are exactly two of them:
RESULT(1) = norm( R - A*Q' ) / ( N * norm(A) * EPS )
RESULT(2) = norm( I - Q*Q' ) / ( N * EPS )
So RESULT(1) is the first ratio and RESULT(2) is the orthonormality check. Two numbers, two moods π¦
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
all the legends, gathered in one place π«Ά
Definition at line 134 of file crqt02.f. (yes, line 134, she's specific π
)
β Author β
Generated automatically by Doxygen for LAPACK from the source code. not a human, not a poet, just Doxygen doing its thing π€β¨
ok that's the whole page bestie, you ate that π
cute lil sign-off: this masterpiece is LAPACK Version 3.12.0, and it lives at /home/abui...IN/crqt02.f(3) β screenshot it, frame it, put it on your wall π
π¦ 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