DGQRTS(3)

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

πŸ’… DGQRTS(3) β€” like, the whole entire file /home/abui...IG/dgqrts.f(3)

okay so bestie, welcome to the LAPACK Library Functions Manual πŸŽ€ this page is basically a very specific little corner of it, and honestly? it ate. we're talking one (1) subroutine that stress-tests another subroutine. very "let me test my friend's fit before we go out" energy. πŸ’…


✨ NAME ✨

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/EIG/dgqrts.f

(yeah that's the whole name. it's giving full home address. no nickname, no vibe, just the entire filesystem path. 😭)


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines 🌸

subroutine DGQRTS (n, m, p, a, af, q, r, lda, taua, b, bf, z, t, bwk,
    ldb, taub, work, lwork, rwork, result)

DGQRTS β€” that's it, that's the subroutine. twenty-two arguments and not a single one of them is sorry. 😀


πŸ‘‘ Function/Subroutine Documentation πŸ‘‘

here's the full signature, character for character, no cap:

subroutine DGQRTS (integer n, integer m, integer p, double precision,
    dimension( lda, * ) a, double precision, dimension( lda, * ) af, double
    precision, dimension( lda, * ) q, double precision, dimension( lda, * )
    r, integer lda, double precision, dimension( * ) taua, double precision,
    dimension( ldb, * ) b, double precision, dimension( ldb, * ) bf, double
    precision, dimension( ldb, * ) z, double precision, dimension( ldb, * )
    t, double precision, dimension( ldb, * ) bwk, integer ldb, double
    precision, dimension( * ) taub, double precision, dimension( lwork )
    work, integer lwork, double precision, dimension( * ) rwork, double
    precision, dimension( 4 ) result)

DGQRTS πŸ’œ (yes we're saying it twice, the docs say it twice, it's a whole thing)


πŸ’– Purpose πŸ’–

fr fr, here's the tea: DGQRTS tests DGGQRF, which computes the GQR factorization of an N-by-M matrix A and a N-by-P matrix B:

A = Q*R  and  B = Q*T*Z

so like... it's the vibe-checker. it makes sure DGGQRF didn't fumble. πŸ”₯


🌈 Parameters 🌈

  • N β€” N is INTEGER. the number of rows of the matrices A and B. constraint era: N >= 0. πŸ‘‘
  • M β€” M is INTEGER. the number of columns of the matrix A. constraint era: M >= 0. ✨
  • P β€” P is INTEGER. the number of columns of the matrix B. constraint era: P >= 0. ✨
  • A β€” A is DOUBLE PRECISION array, dimension (LDA,M). it's the N-by-M matrix A. main character, honestly. πŸ’…
  • AF β€” AF is DOUBLE PRECISION array, dimension (LDA,N). details of the GQR factorization of A and B, as returned by DGGQRF, see SGGQRF for further details. (yes, the docs really do point you at the single-precision one for the lore. iykyk. πŸ™ˆ)
  • Q β€” Q is DOUBLE PRECISION array, dimension (LDA,N). the M-by-M orthogonal matrix Q. she's orthogonal AND she's M-by-M, we love a consistent queen. πŸ‘‘
  • R β€” R is DOUBLE PRECISION array, dimension (LDA,MAX(M,N)). that's all the docs say and honestly? respect for the mystery. πŸŽ€
  • LDA β€” LDA is INTEGER. the leading dimension of the arrays A, AF, R and Q. constraint era: LDA >= max(M,N). do not come in under that. 😀
  • TAUA β€” TAUA is DOUBLE PRECISION array, dimension (min(M,N)). the scalar factors of the elementary reflectors, as returned by DGGQRF. the little guys. the supporting cast. 🫢
  • B β€” B is DOUBLE PRECISION array, dimension (LDB,P). on entry, the N-by-P matrix A. yep β€” it literally says matrix A in the B entry. that's not me, that's the source, we do not editorialize. πŸ’€
  • BF β€” BF is DOUBLE PRECISION array, dimension (LDB,N). details of the GQR factorization of A and B, as returned by DGGQRF, see SGGQRF for further details. same lore drop as AF. πŸ“š
  • Z β€” Z is DOUBLE PRECISION array, dimension (LDB,P). the P-by-P orthogonal matrix Z. and she slays too. πŸ¦‹
  • T β€” T is DOUBLE PRECISION array, dimension (LDB,max(P,N)). short entry, no explanation, absolute icon behaviour. ⭐
  • BWK β€” BWK is DOUBLE PRECISION array, dimension (LDB,N). also no explanation. mysterious. love that for us. 🌸
  • LDB β€” LDB is INTEGER. the leading dimension of the arrays B, BF, Z and T. constraint era: LDB >= max(P,N). same energy as LDA, different letters. πŸ’…
  • TAUB β€” TAUB is DOUBLE PRECISION array, dimension (min(P,N)). the scalar factors of the elementary reflectors, as returned by DGGRQF. (notice: this one's DGGRQF, not DGGQRF β€” one letter different, big consequences, do not mix them up bestie. 😭)
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (LWORK). the workspace. the grind. πŸ’ͺ
  • LWORK β€” LWORK is INTEGER. the dimension of the array WORK, and the constraint is: LWORK >= max(N,M,P)**2. note the **2. it's squared. it's not a suggestion. 🫠
  • RWORK β€” RWORK is DOUBLE PRECISION array, dimension (max(N,M,P)). πŸ“
  • RESULT β€” RESULT is DOUBLE PRECISION array, dimension (4). the test ratios, and here they are, in all their glory:
RESULT(1) = norm( R - Q'*A ) / ( MAX(M,N)*norm(A)*ULP)
RESULT(2) = norm( T*Z - Q'*B ) / (MAX(P,N)*norm(B)*ULP)
RESULT(3) = norm( I - Q'*Q ) / ( M*ULP )
RESULT(4) = norm( I - Z'*Z ) / ( P*ULP )

four ratios, four vibe checks. if these come back small, everything is, in the technical sense, immaculate. ✨


🧚 Author 🧚

the whole squad showed up for this one:

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

πŸ’œ Definition πŸ’œ

Definition at line 174 of file dgqrts.f. (line one-seven-four. go look. we'll wait. πŸ’…)


🌟 Author 🌟

Generated automatically by Doxygen for LAPACK from the source code. so like, a robot wrote this and we're all just living in it. πŸ€–βœ¨


🫢 quick reminder bestie: every number, dimension, bound and formula up there is load-bearing. don't come for me if you pass a bad LDA β€” LDA >= max(M,N) is right there, in writing, with receipts.

and that's the page!! mwah πŸ’‹ β€” brought to you by LAPACK, Version 3.12.0, filed under /home/abui...IG/dgqrts.f(3), no date on the footer so don't ask me for one, the manpage simply didn't provide it. periodt. πŸŽ€πŸŒˆβ­

πŸ“¦ where this page comes from