CRQT02(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ’– 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 β€” M is INTEGER, 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 β€” N is INTEGER, the number of columns of the matrix Q being generated. The constraint is N >= 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 β€” K is INTEGER, the number of elementary reflectors whose product defines the matrix Q. Rule: M >= K >= 0. she's sandwiched between M and zero, periodt.
  • A β€” A is COMPLEX array, dimension (LDA,N). It's the m-by-n matrix A which was factorized by CRQT01. πŸ’–
  • AF β€” AF is COMPLEX array, dimension (LDA,N). This one holds the details of the RQ factorization of A, as returned by CGERQF. "See CGERQF for further details" β€” iykyk, go read that one too πŸ“š
  • Q β€” Q is COMPLEX array, dimension (LDA,N). that's the star of the show ✨
  • R β€” R is COMPLEX array, dimension (LDA,M). note the M bestie, not N πŸ‘€
  • LDA β€” LDA is INTEGER, 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 β€” TAU is COMPLEX array, dimension (M). These are the scalar factors of the elementary reflectors corresponding to the RQ factorization in AF. πŸ’…
  • WORK β€” WORK is COMPLEX array, dimension (LWORK). workspace, she works.
  • LWORK β€” LWORK is INTEGER, the dimension of the array WORK. that's the whole description, she's a woman of few words πŸŽ€
  • RWORK β€” RWORK is REAL array, dimension (M). real ones only πŸ’―
  • RESULT β€” RESULT is REAL 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