DORGRQ(3)

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

πŸ’… DORGRQ(3) β€” like, the whole entire manual page, bestie

okay so this is a page from the LAPACK fam, and the file it lives in is literally:

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

that's the NAME section, yes it's just a path, yes it's giving "my professor named the file after his dog". moving on πŸ’–


✨ SYNOPSIS ✨

Functions/Subroutines

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

DORGRQ β€” that's the whole vibe, bestie.


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

subroutine DORGRQ (integer m, integer n, integer k, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( * ) tau, double precision, dimension( * ) work, integer lwork, integer info)

DORGRQ 🌸

πŸŽ€ Purpose πŸŽ€

!> !> DORGRQ generates an M-by-N real matrix Q with orthonormal rows, !> which is defined as the last M rows of a product of K elementary !> reflectors of order N !> !> Q = H(1) H(2) . . . H(k) !> !> as returned by DGERQF. !>

so basically this subroutine builds you an M-by-N real matrix Q whose rows are orthonormal β€” and it's the last M rows of a product of K elementary reflectors of order N. the way it's just handed to you already factored by DGERQF?? iconic. πŸ‘‘

🌈 Parameters 🌈

  • M β€” M is INTEGER. it's the number of rows of the matrix Q, and M >= 0. no negative rows allowed, that's not a thing bestie πŸ’€
  • N β€” N is INTEGER. the number of columns of the matrix Q. constraint: N >= M. yes it has to be at least as wide as it is tall, them's the rules.
  • K β€” K is INTEGER. the number of elementary reflectors whose product defines the matrix Q. and M >= K >= 0. sandwich it between zero and M, fr fr.
  • A β€” A is DOUBLE PRECISION 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 DGERQF in the last k rows of its array argument A. on exit, it's the M-by-N matrix Q. so it literally transforms in front of you, main character energy ✨
  • LDA β€” LDA is INTEGER. the first dimension of the array A. LDA >= max(1,M). don't skip on this one πŸ™ˆ
  • TAU β€” TAU is DOUBLE PRECISION array, dimension (K). TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by DGERQF. it's the little scalar bestie that comes along for the ride 🫢
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)). on exit, if INFO = 0, then WORK(1) returns the optimal LWORK. cute little bonus info, we love a self-reporting workspace πŸ’–
  • 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.
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 it's the "just tell me how much room I need" mode, no cap 🧚
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -i, the i-th argument has an illegal value 😭

πŸ‘‘ Author πŸ‘‘

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

Definition at line 127 of file dorgrq.f.


⭐ Author ⭐

Generated automatically by Doxygen for LAPACK from the source code.


okay so that's the whole thing, every last flag and constraint intact because I would never do you dirty like that πŸ’œ this was pulled straight from LAPACK, Version 3.12.0, and it lives at /home/abui...RC/dorgrq.f(3) β€” slay, go build your orthonormal rows, bestie πŸ¦‹πŸ’…

πŸ“¦ where this page comes from