TESTING/LIN/zqrt03.f(3)

πŸ“¦
version 3.12.1 Β· 3 versions
, in arch rolling

πŸ¦‹ TESTING/LIN/zqrt03.f πŸ¦‹

okay so bestie, welcome to the little corner of LAPACK that's literally only job is checking whether ZUNMQR is doing its thing correctly. it's a test routine, it's iconic, it's giving "quality assurance but make it math." no cap. πŸ’…

the manual here is TESTING/LIN/zqrt03.f(3) β€” that's the file, that's the vibe, iykyk.


✨ SYNOPSIS ✨

Functions/Subroutines

  • subroutine zqrt03 (m, n, k, af, c, cc, q, lda, tau, work, lwork, rwork, result) β€” the one and only, ZQRT03 herself πŸ‘‘

πŸŽ€ Function/Subroutine Documentation πŸŽ€

subroutine zqrt03 (integer m, integer n, integer k, complex*16, dimension(
    lda, * ) af, complex*16, dimension( lda, * ) c, complex*16, dimension(
    lda, * ) cc, complex*16, dimension( lda, * ) q, integer lda, complex*16,
    dimension( * ) tau, complex*16, dimension( lwork ) work, integer lwork,
    double precision, dimension( * ) rwork, double precision, dimension( * )
    result)

ZQRT03 β€” say it with me, bestie. 🫢

🌸 Purpose 🌸

so ZQRT03 tests ZUNMQR, which computes Q*C, Q'*C, C*Q or C*Q'. that's the whole assignment, and she ate. πŸ”₯

ZQRT03 compares the results of a call to ZUNMQR with the results of forming Q explicitly by a call to ZUNGQR and then performing matrix multiplication by a call to ZGEMM. like β€” two different routes to the same answer, and we're checking they actually match. main character energy fr fr. πŸ’€

πŸ’– Parameters πŸ’–

  • M β€” M is INTEGER. the order of the orthogonal matrix Q. M >= 0. that's the rule, no exceptions. ⭐
  • N β€” N is INTEGER. the number of rows or columns of the matrix C; C is m-by-n if Q is applied from the left, or n-by-m if Q is applied from the right. and yes: N >= 0.
  • K β€” K is INTEGER. the number of elementary reflectors whose product defines the orthogonal matrix Q. M >= K >= 0. respect the sandwich constraint, girlies. πŸ₯ͺ
  • AF β€” AF is COMPLEX*16 array, dimension (LDA,N). details of the QR factorization of an m-by-n matrix, as returned by ZGEQRF. see ZGEQRF for further details β€” she's the source of truth, go read her. πŸ“š
  • C β€” C is COMPLEX*16 array, dimension (LDA,N). that's it. that's the entry. she's just out here being an array. πŸ¦‹
  • CC β€” CC is COMPLEX*16 array, dimension (LDA,N). same energy, different name. πŸ’œ
  • Q β€” Q is COMPLEX*16 array, dimension (LDA,M). the star of the show honestly. πŸ‘‘
  • LDA β€” LDA is INTEGER. the leading dimension of the arrays AF, C, CC, and Q. one number, four arrays, so much responsibility. 😭
  • TAU β€” TAU is COMPLEX*16 array, dimension (min(M,N)). the scalar factors of the elementary reflectors corresponding to the QR factorization in AF. tiny array, huge role. ✨
  • WORK β€” WORK is COMPLEX*16 array, dimension (LWORK). the workspace. she's doing her best. 🫢
  • LWORK β€” LWORK is INTEGER. the length of WORK. LWORK must be at least M, and should be M*NB, where NB is the blocksize for this environment. so like, don't skimp on the workspace bestie, she has opinions. πŸ™ˆ
  • RWORK β€” RWORK is DOUBLE PRECISION array, dimension (M). real ones only. 🌈
  • RESULT β€” RESULT is DOUBLE PRECISION array, dimension (4). the test ratios compare two techniques for multiplying a random matrix C by an m-by-m orthogonal matrix Q, and here's the receipts:
RESULT(1) = norm( Q*C - Q*C )  / ( M * norm(C) * EPS )
RESULT(2) = norm( C*Q - C*Q )  / ( M * norm(C) * EPS )
RESULT(3) = norm( Q'*C - Q'*C )/ ( M * norm(C) * EPS )
RESULT(4) = norm( C*Q' - C*Q' )/ ( M * norm(C) * EPS )

four numbers, four verdicts, absolute slay. ⭐


πŸ‘‘ Author πŸ‘‘

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

the whole squad, honestly. 🫢

Definition at line 134 of file zqrt03.f.


🧚 Author (again, but the meta one) 🧚

Generated automatically by Doxygen for LAPACK from the source code. so like, nobody hand-wrote this and honestly? you can tell, but she's still cute. πŸ™ˆ


okay bye bestie, go check your RESULT values and remember: LWORK must be at least M. πŸ’–

LAPACK β€” Version 3.12.0 Β· TESTING/LIN/zqrt03.f(3) Β· mwah, see u on the next page βœ¨πŸŽ€πŸ’…

πŸ“¦ where this page comes from