ZGQRTS(3)

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

🌸 NAME 🌸

okay so bestie, this whole page is literally just one file, and its name is a journey:

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

and up top the header calls it /home/abui...IG/zgqrts.f(3) from the Library Functions Manual, because paths in manpage headers are always doing the absolute most πŸ™ˆπŸ’…

this is ZGQRTS β€” a test routine, and it's giving "I check the homework of the actual math routines" ✨


πŸŽ€ SYNOPSIS πŸŽ€

Functions/Subroutines

  • subroutine ZGQRTS (n, m, p, a, af, q, r, lda, taua, b, bf, z, t, bwk, ldb, taub, work, lwork, rwork, result) β€” that's the whole cast, no understudies πŸ’–
  • ZGQRTS β€” again, because she said her name twice and honestly? iconic πŸ‘‘

πŸ’œ Function/Subroutine Documentation πŸ’œ

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

ZGQRTS


✨ Purpose ✨

!> !> ZGQRTS tests ZGGQRF, 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. !>

no cap, that's the whole point: she's the vibe-check routine for ZGGQRF, which factors A = Q*R and B = Q*T*Z πŸ¦‹


🧚 Parameters 🧚

bestie there are so many parameters. we're going through all of them, nobody gets left behind 🫢

N

!> N is INTEGER !> The number of rows of the matrices A and B. N >= 0. !>

rows of A and B, and N >= 0 fr fr.

M

!> M is INTEGER !> The number of columns of the matrix A. M >= 0. !>

columns of A, M >= 0 ✨

P

!> P is INTEGER !> The number of columns of the matrix B. P >= 0. !>

columns of B, P >= 0 πŸ’…

A

!> A is COMPLEX*16 array, dimension (LDA,M) !> The N-by-M matrix A. !>

literally the N-by-M matrix A, dimension (LDA,M) 🌸

AF

!> AF is COMPLEX*16 array, dimension (LDA,N) !> Details of the GQR factorization of A and B, as returned !> by ZGGQRF, see CGGQRF for further details. !>

the factorization deets, dimension (LDA,N), handed back by ZGGQRF β€” and for the further details she's pointing you at CGGQRF, iykyk πŸ‘€

Q

!> Q is COMPLEX*16 array, dimension (LDA,N) !> The M-by-M unitary matrix Q. !>

the M-by-M unitary matrix Q, main character energy πŸ‘‘

R

!> R is COMPLEX*16 array, dimension (LDA,MAX(M,N)) !>

R, dimension (LDA,MAX(M,N)). that's it, that's the whole description, she's mysterious like that πŸ’€

LDA

!> LDA is INTEGER !> The leading dimension of the arrays A, AF, R and Q. !> LDA >= max(M,N). !>

leading dimension of A, AF, R, and Q, and you must have LDA >= max(M,N) ⭐

TAUA

!> TAUA is COMPLEX*16 array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors, as returned !> by ZGGQRF. !>

scalar factors of the elementary reflectors, dimension (min(M,N)), courtesy of ZGGQRF ✨

B

!> B is COMPLEX*16 array, dimension (LDB,P) !> On entry, the N-by-P matrix A. !>

okay so the manpage literally says "the N-by-P matrix A" here. not me fixing it, not me arguing, just reporting what it says πŸ™ˆ dimension (LDB,P) though, that part's clear.

BF

!> BF is COMPLEX*16 array, dimension (LDB,N) !> Details of the GQR factorization of A and B, as returned !> by ZGGQRF, see CGGQRF for further details. !>

same deal as AF but for B, dimension (LDB,N), again ZGGQRF and again "see CGGQRF for further details" πŸ¦‹

Z

!> Z is COMPLEX*16 array, dimension (LDB,P) !> The P-by-P unitary matrix Z. !>

the P-by-P unitary matrix Z, dimension (LDB,P) πŸ’–

T

!> T is COMPLEX*16 array, dimension (LDB,max(P,N)) !>

T, dimension (LDB,max(P,N)). short and sweet, we respect it 🌈

BWK

!> BWK is COMPLEX*16 array, dimension (LDB,N) !>

BWK, dimension (LDB,N). that's the entire paragraph. werk πŸŽ€

LDB

!> LDB is INTEGER !> The leading dimension of the arrays B, BF, Z and T. !> LDB >= max(P,N). !>

leading dimension of B, BF, Z, and T, with LDB >= max(P,N) β€” non-negotiable bestie ⭐

TAUB

!> TAUB is COMPLEX*16 array, dimension (min(P,N)) !> The scalar factors of the elementary reflectors, as returned !> by DGGRQF. !>

scalar factors of the elementary reflectors, dimension (min(P,N)), and this time the manpage says returned by DGGRQF β€” yep, D, we're keeping it exactly as written πŸ’…

WORK

!> WORK is COMPLEX*16 array, dimension (LWORK) !>

workspace, dimension (LWORK) ✨

LWORK

!> LWORK is INTEGER !> The dimension of the array WORK, LWORK >= max(N,M,P)**2. !>

dimension of WORK, and the rule is LWORK >= max(N,M,P)**2 β€” yes, squared, she's not playing around πŸ”₯

RWORK

!> RWORK is DOUBLE PRECISION array, dimension (max(N,M,P)) !>

DOUBLE PRECISION, dimension (max(N,M,P)) 🌸

RESULT

!> RESULT is DOUBLE PRECISION array, dimension (4) !> The test ratios: !> 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 ) !>

okay this is the moment, the four test ratios, dimension (4), and here they are verbatim because numbers are sacred:

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 )

πŸ‘‘ Author πŸ‘‘

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

four institutions, one routine, absolute group project slay 🫢

Definition at line 174 of file zgqrts.f. ⭐


🌟 Author 🌟

Generated automatically by Doxygen for LAPACK from the source code.

so nobody wrote this page, a robot did, and honestly? she ate πŸ’…


LAPACK, Version 3.12.0, /home/abui...IG/zgqrts.f(3) β€” and that's the whole page bestie, mwah, go run your tests πŸŽ€πŸ’–βœ¨

πŸ“¦ where this page comes from