CUNGRQ(3)

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

πŸ’… CUNGRQ(3) β€” like, the Library Functions Manual, bestie ✨

okay so first things first, the manual name is Library Functions Manual and this page is about a file that lives way down in /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/cungrq.f β€” yes THAT path, the whole entire thing, no cap 🫢


🌸 NAME 🌸

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/cungrq.f

that's it. that's the name. it's giving "the file speaks for itself" energy πŸ’€


✨ SYNOPSIS ✨

Functions/Subroutines

subroutine CUNGRQ (m, n, k, a, lda, tau, work, lwork, info)

CUNGRQ β€” and that's literally what it is, a subroutine, iconic behavior πŸ‘‘


πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

subroutine CUNGRQ (integer m, integer n, integer k, complex, dimension( lda, * ) a, integer lda, complex, dimension( * ) tau, complex, dimension( * ) work, integer lwork, integer info)

CUNGRQ β€” say it with me, she's a subroutine, she's got types, she's got dimensions, she's got a whole personality πŸ’–

πŸŽ€ Purpose πŸŽ€

so here's the vibe check: CUNGRQ generates an M-by-N complex matrix Q with orthonormal rows, which is defined as the last M rows of a product of K elementary reflectors of order N β€” and the way that formula goes is:

Q  =  H(1)**H H(2)**H . . . H(k)**H

as returned by CGERQF. that's it. that's the whole job. she takes the leftovers from CGERQF and builds you a Q. slay πŸ’…


πŸ’œ Parameters πŸ’œ

  • M β€” M is INTEGER. it's the number of rows of the matrix Q, and M >= 0. like, she needs rows, bestie, that's non-negotiable πŸ“
  • N β€” N is INTEGER. the number of columns of the matrix Q, with N >= M. columns always gotta be at least as many as the rows, that's just the math tea β˜•
  • K β€” K is INTEGER. the number of elementary reflectors whose product defines the matrix Q, and M >= K >= 0. K's entire job is to count reflectors and stay in her lane 🌈
  • A β€” A is COMPLEX array, dimension (LDA,N). on entry, the (m-k+i)-th row must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by CGERQF in the last k rows of its array argument A. on exit, the M-by-N matrix Q. so she arrives as reflector data and leaves as a whole entire Q β€” main character transformation arc, honestly 😭
  • LDA β€” LDA is INTEGER. the first dimension of the array A, and LDA >= max(1,M). respect the leading dimension or she will simply not respect you back πŸ™ˆ
  • TAU β€” TAU is COMPLEX array, dimension (K). TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by CGERQF. the little scalar bestie for every single reflector πŸŽ€
  • WORK β€” WORK is COMPLEX array, dimension (MAX(1,LWORK)). on exit, if INFO = 0, WORK(1) returns the optimal LWORK. she's a workspace and also a little messenger, multitasking queen πŸ’…
  • LWORK β€” LWORK is INTEGER. the dimension of the array WORK. LWORK >= max(1,M). for optimum performance LWORK >= M*NB, where NB is the optimal blocksize.
ngl this next bit matters: if LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA. so don't be out here expecting a warning, because there isn't one, fr fr ⚠️
  • INFO β€” INFO is INTEGER. she reports the results:
    • = 0: successful exit ✨ ate, no notes
    • < 0: if INFO = -i, the i-th argument has an illegal value. somebody misbehaved and INFO is naming names πŸ’€

πŸ‘‘ Author πŸ‘‘

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

the whole squad, credentialed and everything 🫢

Definition at line 127 of file cungrq.f. β€” line one-two-seven, go look, she's really there πŸ”₯


⭐ Author ⭐

Generated automatically by Doxygen for LAPACK from the source code. so a robot wrote this page about her, which honestly is very on brand πŸ€–πŸ’œ


🏁 okay that's the page!! footer tea real quick: this is LAPACK, Version 3.12.0, and it was written into /home/abui...RC/cungrq.f(3) β€” the path is literally abbreviated in the footer, not a typo, that's just how she's filed. bye bestie, go build your Q πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from