DRQT03(3)

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

πŸ’… drqt03(3) β€” like, the LAPACK tester for DORMRQ, bestie

okay so first things first: this page lives in the Library Functions Manual (the <italic>drqt03.f(3)</italic> one, from the whole /home/abui...IN/drqt03.f(3) situation) and it's literally all about a Fortran subroutine that checks whether DORMRQ is doing its job. yes queen, quality assurance ✨


✨ SYNOPSIS ✨

Functions/Subroutines 🫢

subroutine DRQT03 (m, n, k, af, c, cc, q, lda, tau, work, lwork, rwork,
    result)

DRQT03 β€” that's the whole name, no cap πŸ’…


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

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

DRQT03 πŸ‘‘

🌸 Purpose 🌸

ok so picture this: DRQT03 tests DORMRQ, which computes Q*C, Q'*C, C*Q or C*Q'. that's it, that's the vibe.

and how does it do the vibe check? DRQT03 compares the results of a call to DORMRQ with the results of forming Q explicitly by a call to DORGRQ and then performing matrix multiplication by a call to DGEMM. two techniques, one winner, we love a head-to-head πŸ’€πŸ”₯

πŸ¦‹ Parameters πŸ¦‹

  • M β€” M is INTEGER. it's the number of rows or columns of the matrix C; C is n-by-m if Q is applied from the left, or m-by-n if Q is applied from the right. M >= 0. bestie it literally cannot be negative πŸ™ˆ
  • N β€” N is INTEGER. the order of the orthogonal matrix Q. N >= 0. again, zero is fine, negative is not ✨
  • K β€” K is INTEGER. the number of elementary reflectors whose product defines the orthogonal matrix Q. N >= K >= 0. it's sandwiched, she's contained, periodt πŸ‘‘
  • AF β€” AF is DOUBLE PRECISION array, dimension (LDA,N). details of the RQ factorization of an m-by-n matrix, as returned by DGERQF. See SGERQF for further details. iykyk 🧚
  • C β€” C is DOUBLE PRECISION array, dimension (LDA,N). yes. that's the whole description. she's mysterious, she's iconic πŸ’…
  • CC β€” CC is DOUBLE PRECISION array, dimension (LDA,N). same energy, different name πŸŽ€
  • Q β€” Q is DOUBLE PRECISION array, dimension (LDA,N). the main character herself 🌈
  • LDA β€” LDA is INTEGER. the leading dimension of the arrays AF, C, CC, and Q. one number to rule all four arrays fr fr
  • TAU β€” TAU is DOUBLE PRECISION array, dimension (min(M,N)). the scalar factors of the elementary reflectors corresponding to the RQ factorization in AF. the little guys behind the scenes πŸ“
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (LWORK). the workspace. she works πŸ’€
  • 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. yes, "must" and "should" are different words, don't come for me 😭
  • RWORK β€” RWORK is DOUBLE PRECISION array, dimension (M). okay so there's WORK and there's RWORK and you need both 🫢
  • RESULT β€” RESULT is DOUBLE PRECISION array, dimension (4). the test ratios compare two techniques for multiplying a random matrix C by an n-by-n orthogonal matrix Q. like, the receipts:
RESULT(1) = norm( Q*C - Q*C )  / ( N * norm(C) * EPS )
RESULT(2) = norm( C*Q - C*Q )  / ( N * norm(C) * EPS )
RESULT(3) = norm( Q'*C - Q'*C )/ ( N * norm(C) * EPS )
RESULT(4) = norm( C*Q' - C*Q' )/ ( N * norm(C) * EPS )

πŸ’œ Author πŸ’œ

the whole squad behind this one:

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

Definition at line 134 of file drqt03.f. go look, she's right there πŸ“


ngl this whole page was generated automatically by Doxygen for LAPACK from the source code. so if something reads weird, blame the robot, not me πŸ€–πŸ’€

and that's the tea, bestie β€” LAPACK, Version 3.12.0, dated /home/abui...IN/drqt03.f(3). mwah, slay, go test some matrices πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from