DORGRQ(3)
π 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, andM >= 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. andM >= 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 reflectorH(i), fori = 1,2,...,k, as returned byDGERQFin the last k rows of its array argumentA. 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 arrayA.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 reflectorH(i), as returned byDGERQF. it's the little scalar bestie that comes along for the ride π«ΆWORKβWORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)). on exit, ifINFO = 0, thenWORK(1)returns the optimalLWORK. cute little bonus info, we love a self-reporting workspace πLWORKβLWORK is INTEGER. the dimension of the arrayWORK.LWORK >= max(1,M). for optimum performanceLWORK >= M*NB, whereNBis the optimal blocksize.
ifLWORK = -1, then a workspace query is assumed β the routine only calculates the optimal size of theWORKarray, returns this value as the first entry of theWORKarray, and no error message related toLWORKis issued byXERBLA. so it's the "just tell me how much room I need" mode, no cap π§
INFOβINFO is INTEGER.= 0: successful exit π< 0: ifINFO = -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
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms