SRC/cungbr.f(3)
π¦ SRC/cungbr.f(3) β Library Functions Manual, bestie edition π
okay so we're looking at SRC/cungbr.f from the Library Functions Manual, and this page is all about the routine CUNGBR. It's giving Fortran linear-algebra royalty, no cap. Let's get into it.
π NAME
SRC/cungbr.f
Yes bestie, the NAME section is literally just that file path. The subroutine living here is CUNGBR.
β¨ SYNOPSIS
Functions/Subroutines
subroutine cungbr (vect, m, n, k, a, lda, tau, work, lwork, info)βCUNGBR.
π«Ά Function/Subroutine Documentation
πΈ subroutine cungbr
subroutine cungbr (character vect, integer m, integer n, integer k, complex,
dimension( lda, * ) a, integer lda, complex, dimension( * ) tau,
complex, dimension( * ) work, integer lwork, integer info)
π CUNGBR
π Purpose
okay so CUNGBR generates one of the complex unitary matrices Q or P**H determined by CGEBRD when reducing a complex matrix A to bidiagonal form: A = Q * B * P**H. Q and P**H are defined as products of elementary reflectors H(i) or G(i) respectively. slay.
- If
VECT = 'Q',Ais assumed to have been anM-by-Kmatrix, andQis of orderM:- if
m >= k,Q = H(1) H(2) . . . H(k)andCUNGBRreturns the firstncolumns ofQ, wherem >= n >= k; - if
m < k,Q = H(1) H(2) . . . H(m-1)andCUNGBRreturnsQas anM-by-Mmatrix.
- if
- If
VECT = 'P',Ais assumed to have been aK-by-Nmatrix, andP**His of orderN:- if
k < n,P**H = G(k) . . . G(2) G(1)andCUNGBRreturns the firstmrows ofP**H, wheren >= m >= k; - if
k >= n,P**H = G(n-1) . . . G(2) G(1)andCUNGBRreturnsP**Has anN-by-Nmatrix.
- if
π Parameters
VECTβVECT is CHARACTER*1. It specifies whether the matrixQor the matrixP**His required, as defined in the transformation applied byCGEBRD:= 'Q': generateQ;= 'P': generateP**H.
MβM is INTEGER. The number of rows of the matrixQorP**Hto be returned.M >= 0.NβN is INTEGER. The number of columns of the matrixQorP**Hto be returned.N >= 0. IfVECT = 'Q',M >= N >= min(M,K); ifVECT = 'P',N >= M >= min(N,K).KβK is INTEGER. IfVECT = 'Q', the number of columns in the originalM-by-Kmatrix reduced byCGEBRD. IfVECT = 'P', the number of rows in the originalK-by-Nmatrix reduced byCGEBRD.K >= 0.AβA is COMPLEX array, dimension (LDA,N). On entry, the vectors which define the elementary reflectors, as returned byCGEBRD. On exit, theM-by-NmatrixQorP**H.LDAβLDA is INTEGER. The leading dimension of the arrayA.LDA >= M.TAUβTAU is COMPLEX array, dimension (min(M,K)) if VECT = 'Q' (min(N,K)) if VECT = 'P'.TAU(i)must contain the scalar factor of the elementary reflectorH(i)orG(i), which determinesQorP**H, as returned byCGEBRDin its array argumentTAUQorTAUP.WORKβWORK is COMPLEX array, dimension (MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβLWORK is INTEGER. The dimension of the arrayWORK.LWORK >= max(1,min(M,N)). For optimum performanceLWORK >= min(M,N)*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.INFOβINFO is INTEGER.= 0: successful exit.< 0: ifINFO = -i, thei-th argument had an illegal value.
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 156 of file cungbr.f.
π Author
Generated automatically by Doxygen for LAPACK from the source code.
byeee bestie π«Άπ source/version vibe: LAPACK Version 3.12.0 Β· file: SRC/cungbr.f(3) Β· date: not shown on the page, so I'm not inventing one πβ¨ periodt.
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms