SORGRQ(3)

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

πŸ¦‹ sorgrq.f(3) β€” or like, the glow-up guide to SORGRQ πŸ¦‹

okay bestie, welcome to the Library Functions Manual entry for

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

yes that's the whole path, no I'm not abbreviating it, it's literally the NAME section and we respect the source file's full government name ✨


🌸 SYNOPSIS 🌸

Functions/Subroutines

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

that's it. that's the icon. the main character of this manpage, no cap πŸ’…


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

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

SORGRQ

⭐ Purpose ⭐

ok so this is the whole point of the routine, pay attention 🫢

!>
!> SORGRQ 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 SGERQF.
!>

short version: it builds you the matrix Q, M-by-N, real, with orthonormal rows β€” and Q is literally the last M rows of the product of K elementary reflectors of order N, i.e.

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

all that coming at you fresh from SGERQF. slay. it's giving "handed down by the oracle" 🧚

πŸ’œ Parameters πŸ’œ

  • M β€” M is INTEGER. it's the number of rows of the matrix Q. the rule is M >= 0. that's it, that's the whole vibe check.
  • N β€” N is INTEGER. the number of columns of the matrix Q. constraint: N >= M. so like, no squishing it the other way, periodt.
  • K β€” K is INTEGER. the number of elementary reflectors whose product defines the matrix Q. constraint: M >= K >= 0. keep it in range bestie πŸ”₯
  • A β€” A is REAL 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 SGERQF in the last k rows of its array argument A.
    • on exit: the M-by-N matrix Q. boom, glow-up complete πŸ’–
  • LDA β€” LDA is INTEGER. the first dimension of the array A. constraint: LDA >= max(1,M). don't skip this one, it WILL notice πŸ™ˆ
  • TAU β€” TAU is REAL array, dimension (K). TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by SGERQF. it's the little sparkle that makes the reflector work ✨
  • WORK β€” WORK is REAL array, dimension (MAX(1,LWORK)). on exit, if INFO = 0, then WORK(1) returns the optimal LWORK. it's like a receipt for the ideal workspace size 🧾
  • LWORK β€” LWORK is INTEGER. the dimension of the array WORK, with LWORK >= max(1,M).
    • for optimum performance, LWORK >= M*NB, where NB is the optimal blocksize. go bigger, live your best life 🌈
    • 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. it's a lil peek, not a full send πŸ‘€
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -i, the i-th argument has an illegal value πŸ’€ (yes, negative INFO means someone passed a bad argument, go find out which one)
fr fr, the LWORK = -1 query mode is not an error. don't panic-text me about it. it's literally documented behaviour. 🫢

πŸ‘‘ Author πŸ‘‘

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

Definition at line 127 of file sorgrq.f. iconic. line 127 specifically. we love a precise citation πŸŽ€


🌟 Author 🌟

Generated automatically by Doxygen for LAPACK from the source code. the robots made this one, be nice to them πŸ€–πŸ’•


and that's the whole page bestie β€” every parameter, every constraint, every default, nothing skipped, nothing invented. iykyk πŸ’…

LAPACK β€” Version 3.12.0 β€” /home/abui...RC/sorgrq.f(3) ... mwah, that's the sign-off, go forth and orthogonalise your rows πŸ¦‹βœ¨πŸ“

πŸ“¦ where this page comes from