gbbrd(3)
πΈ NAME πΈ
gbbrd β the manual literally calls it gbbrd: band to bidiagonal, and honestly? That's the whole pitch. Band matrix in, bidiagonal out, main character energy the entire time. π
β¨ SYNOPSIS β¨
π Functions
Four flavors, one vibe β pick your precision bestie:
subroutine cgbbrd (vect, m, n, ncc, kl, ku, ab, ldab, d, e, q, ldq, pt, ldpt, c, ldc, work, rwork, info)
subroutine dgbbrd (vect, m, n, ncc, kl, ku, ab, ldab, d, e, q, ldq, pt, ldpt, c, ldc, work, info)
subroutine sgbbrd (vect, m, n, ncc, kl, ku, ab, ldab, d, e, q, ldq, pt, ldpt, c, ldc, work, info)
subroutine zgbbrd (vect, m, n, ncc, kl, ku, ab, ldab, d, e, q, ldq, pt, ldpt, c, ldc, work, rwork, info)
And those map, one-to-one, to the four documented routines: CGBBRD, DGBBRD, SGBBRD, ZGBBRD. Yes the caps version is just the loud version. π₯
π¦ Detailed Description π¦
Okay so this section on the page is lowkey empty β no cap, there's literally nothing under the heading in the source. The actual tea lives down in Function Documentation, so scroll with me. π
π Function Documentation π
π cgbbrd β subroutine cgbbrd
The full signature, character for character, because we do not paraphrase code in this house:
subroutine cgbbrd (character vect, integer m, integer n, integer ncc, integer kl, integer ku, complex, dimension( ldab, * ) ab, integer ldab, real, dimension( * ) d, real, dimension( * ) e, complex, dimension( ldq, * ) q, integer ldq, complex, dimension( ldpt, * ) pt, integer ldpt, complex, dimension( ldc, * ) c, integer ldc, complex, dimension( * ) work, real, dimension( * ) rwork, integer info)
CGBBRD
π Purpose
CGBBRD reduces a complex general m-by-n band matrix A to real upper bidiagonal form B by a unitary transformation: Q**H * A * P = B.
The routine computes B, and optionally forms Q or P**H, or computes Q**H*C for a given matrix C.
π Parameters
VECTβVECTisCHARACTER*1. Tells the routine whether or not the matrices Q and P**H are to be formed.= 'N': do not form Q or P**H;= 'Q': form Q only;= 'P': form P**H only;= 'B': form both.
MβMisINTEGER. The number of rows of the matrix A.M >= 0.NβNisINTEGER. The number of columns of the matrix A.N >= 0.NCCβNCCisINTEGER. The number of columns of the matrix C.NCC >= 0.KLβKLisINTEGER. The number of subdiagonals of the matrix A.KL >= 0.KUβKUisINTEGER. The number of superdiagonals of the matrix A.KU >= 0.ABβABisCOMPLEXarray, dimension(LDAB,N). On entry, the m-by-n band matrix A, stored in rows 1 toKL+KU+1. The j-th column of A is stored in the j-th column of the array AB as follows:AB(ku+1+i-j,j) = A(i,j)formax(1,j-ku)<=i<=min(m,j+kl). On exit, A is overwritten by values generated during the reduction. π«Ά (yes, your input gets ate β that's the deal)LDABβLDABisINTEGER. The leading dimension of the array A.LDAB >= KL+KU+1.DβDisREALarray, dimension(min(M,N)). The diagonal elements of the bidiagonal matrix B.EβEisREALarray, dimension(min(M,N)-1). The superdiagonal elements of the bidiagonal matrix B.QβQisCOMPLEXarray, dimension(LDQ,M). IfVECT = 'Q'or'B', the m-by-m unitary matrix Q. IfVECT = 'N'or'P', the array Q is not referenced.LDQβLDQisINTEGER. The leading dimension of the array Q.LDQ >= max(1,M)ifVECT = 'Q'or'B';LDQ >= 1otherwise.PTβPTisCOMPLEXarray, dimension(LDPT,N). IfVECT = 'P'or'B', the n-by-n unitary matrixP'. IfVECT = 'N'or'Q', the array PT is not referenced.LDPTβLDPTisINTEGER. The leading dimension of the array PT.LDPT >= max(1,N)ifVECT = 'P'or'B';LDPT >= 1otherwise.CβCisCOMPLEXarray, dimension(LDC,NCC). On entry, an m-by-ncc matrix C. On exit, C is overwritten byQ**H*C. C is not referenced ifNCC = 0.LDCβLDCisINTEGER. The leading dimension of the array C.LDC >= max(1,M)ifNCC > 0;LDC >= 1ifNCC = 0.WORKβWORKisCOMPLEXarray, dimension(max(M,N)).RWORKβRWORKisREALarray, dimension(max(M,N)).INFOβINFOisINTEGER.= 0: successful exit.< 0: ifINFO = -i, the i-th argument had an illegal value.
π§ Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 191 of file cgbbrd.f.
π dgbbrd β subroutine dgbbrd
Signature, verbatim, no edits:
subroutine dgbbrd (character vect, integer m, integer n, integer ncc, integer kl, integer ku, double precision, dimension( ldab, * ) ab, integer ldab, double precision, dimension( * ) d, double precision, dimension( * ) e, double precision, dimension( ldq, * ) q, integer ldq, double precision, dimension( ldpt, * ) pt, integer ldpt, double precision, dimension( ldc, * ) c, integer ldc, double precision, dimension( * ) work, integer info)
DGBBRD
π Purpose
DGBBRD reduces a real general m-by-n band matrix A to upper bidiagonal form B by an orthogonal transformation: Q**T * A * P = B.
The routine computes B, and optionally forms Q or P**T, or computes Q**T*C for a given matrix C.
π Parameters
VECTβVECTisCHARACTER*1. Specifies whether or not the matrices Q and P**T are to be formed.= 'N': do not form Q or P**T;= 'Q': form Q only;= 'P': form P**T only;= 'B': form both.
MβMisINTEGER. The number of rows of the matrix A.M >= 0.NβNisINTEGER. The number of columns of the matrix A.N >= 0.NCCβNCCisINTEGER. The number of columns of the matrix C.NCC >= 0.KLβKLisINTEGER. The number of subdiagonals of the matrix A.KL >= 0.KUβKUisINTEGER. The number of superdiagonals of the matrix A.KU >= 0.ABβABisDOUBLE PRECISIONarray, dimension(LDAB,N). On entry, the m-by-n band matrix A, stored in rows 1 toKL+KU+1. The j-th column of A is stored in the j-th column of the array AB as follows:AB(ku+1+i-j,j) = A(i,j)formax(1,j-ku)<=i<=min(m,j+kl). On exit, A is overwritten by values generated during the reduction. π rip your original numbersLDABβLDABisINTEGER. The leading dimension of the array A.LDAB >= KL+KU+1.DβDisDOUBLE PRECISIONarray, dimension(min(M,N)). The diagonal elements of the bidiagonal matrix B.EβEisDOUBLE PRECISIONarray, dimension(min(M,N)-1). The superdiagonal elements of the bidiagonal matrix B.QβQisDOUBLE PRECISIONarray, dimension(LDQ,M). IfVECT = 'Q'or'B', the m-by-m orthogonal matrix Q. IfVECT = 'N'or'P', the array Q is not referenced.LDQβLDQisINTEGER. The leading dimension of the array Q.LDQ >= max(1,M)ifVECT = 'Q'or'B';LDQ >= 1otherwise.PTβPTisDOUBLE PRECISIONarray, dimension(LDPT,N). IfVECT = 'P'or'B', the n-by-n orthogonal matrixP'. IfVECT = 'N'or'Q', the array PT is not referenced.LDPTβLDPTisINTEGER. The leading dimension of the array PT.LDPT >= max(1,N)ifVECT = 'P'or'B';LDPT >= 1otherwise.CβCisDOUBLE PRECISIONarray, dimension(LDC,NCC). On entry, an m-by-ncc matrix C. On exit, C is overwritten byQ**T*C. C is not referenced ifNCC = 0.LDCβLDCisINTEGER. The leading dimension of the array C.LDC >= max(1,M)ifNCC > 0;LDC >= 1ifNCC = 0.WORKβWORKisDOUBLE PRECISIONarray, dimension(2*max(M,N)). β note the2*bestie, it's not a typo, it's the double-precision specialINFOβINFOisINTEGER.= 0: successful exit.< 0: ifINFO = -i, the i-th argument had an illegal value.
π§ Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 185 of file dgbbrd.f.
π¦ sgbbrd β subroutine sgbbrd
Signature, untouched, exactly as the page has it:
subroutine sgbbrd (character vect, integer m, integer n, integer ncc, integer kl, integer ku, real, dimension( ldab, * ) ab, integer ldab, real, dimension( * ) d, real, dimension( * ) e, real, dimension( ldq, * ) q, integer ldq, real, dimension( ldpt, * ) pt, integer ldpt, real, dimension( ldc, * ) c, integer ldc, real, dimension( * ) work, integer info)
SGBBRD
π Purpose
SGBBRD reduces a real general m-by-n band matrix A to upper bidiagonal form B by an orthogonal transformation: Q**T * A * P = B.
The routine computes B, and optionally forms Q or P**T, or computes Q**T*C for a given matrix C.
π Parameters
VECTβVECTisCHARACTER*1. Specifies whether or not the matrices Q and P**T are to be formed.= 'N': do not form Q or P**T;= 'Q': form Q only;= 'P': form P**T only;= 'B': form both.
MβMisINTEGER. The number of rows of the matrix A.M >= 0.NβNisINTEGER. The number of columns of the matrix A.N >= 0.NCCβNCCisINTEGER. The number of columns of the matrix C.NCC >= 0.
okay bestie, that's where part 1 stops β the parameters keep rolling in part 2, so don't go anywhere πΈβ¨
KLβKL is INTEGER. It's the number of subdiagonals of matrix A.KL >= 0, bestie.KUβKU is INTEGER. It's the number of superdiagonals of matrix A.KU >= 0.ABβAB is REAL array, dimension (LDAB,N). On entry, this is the m-by-n band matrix A, stored in rows 1 toKL+KU+1. The j-th column of A lives in the j-th column of AB like this:AB(ku+1+i-j,j) = A(i,j) for max(1,j-ku)<=i<=min(m,j+kl). On exit, A is overwritten by values generated during the reduction. iconic behavior, honestly.LDABβLDAB is INTEGER. Leading dimension of array A.LDAB >= KL+KU+1.DβD is REAL array, dimension (min(M,N)). These are the diagonal elements of the bidiagonal matrix B.EβE is REAL array, dimension (min(M,N)-1). These are the superdiagonal elements of the bidiagonal matrix B.QβQ is REAL array, dimension (LDQ,M). IfVECT = 'Q'or'B', it's the m-by-m orthogonal matrix Q. IfVECT = 'N'or'P', the array Q is not referenced.LDQβLDQ is INTEGER. Leading dimension of array Q.LDQ >= max(1,M)ifVECT = 'Q'or'B';LDQ >= 1otherwise.PTβPT is REAL array, dimension (LDPT,N). IfVECT = 'P'or'B', it's the n-by-n orthogonal matrix P'. IfVECT = 'N'or'Q', the array PT is not referenced.LDPTβLDPT is INTEGER. Leading dimension of array PT.LDPT >= max(1,N)ifVECT = 'P'or'B';LDPT >= 1otherwise.CβC is REAL array, dimension (LDC,NCC). On entry, an m-by-ncc matrix C. On exit, C is overwritten byQ**T*C. C is not referenced ifNCC = 0.LDCβLDC is INTEGER. Leading dimension of array C.LDC >= max(1,M)ifNCC > 0;LDC >= 1ifNCC = 0.WORKβWORK is REAL array, dimension (2*max(M,N)).INFOβINFO is INTEGER.= 0: successful exit.< 0: ifINFO = -i, the i-th argument had an illegal value.
πΈ Author πΈ
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 185 of file sgbbrd.f.
π subroutine zgbbrd π
subroutine zgbbrd (character vect, integer m, integer n, integer ncc,
integer kl, integer ku, complex*16, dimension( ldab, * ) ab, integer
ldab, double precision, dimension( * ) d, double precision, dimension( *
) e, complex*16, dimension( ldq, * ) q, integer ldq, complex*16,
dimension( ldpt, * ) pt, integer ldpt, complex*16, dimension( ldc, * )
c, integer ldc, complex*16, dimension( * ) work, double precision,
dimension( * ) rwork, integer info)
β¨ Purpose β¨
Okay so ZGBBRD reduces a complex general m-by-n band matrix A to real upper bidiagonal form B by a unitary transformation: Q**H * A * P = B. That's the glow-up.
The routine computes B, and optionally forms Q or P**H, or computes Q**H*C for a given matrix C. choose your adventure, bestie.
π Parameters π
VECTβVECT is CHARACTER*1. It says whether or not the matrices Q and PH are to be formed.= 'N': do not form Q or PH;= 'Q': form Q only;= 'P': form P**H only;= 'B': form both.MβM is INTEGER. The number of rows of matrix A.M >= 0.NβN is INTEGER. The number of columns of matrix A.N >= 0.NCCβNCC is INTEGER. The number of columns of matrix C.NCC >= 0.KLβKL is INTEGER. The number of subdiagonals of matrix A.KL >= 0.KUβKU is INTEGER. The number of superdiagonals of matrix A.KU >= 0.ABβAB is COMPLEX*16 array, dimension (LDAB,N). On entry, the m-by-n band matrix A, stored in rows 1 toKL+KU+1. The j-th column of A is stored in the j-th column of the array AB as follows:AB(ku+1+i-j,j) = A(i,j) for max(1,j-ku)<=i<=min(m,j+kl). On exit, A is overwritten by values generated during the reduction.LDABβLDAB is INTEGER. The leading dimension of the array A.LDAB >= KL+KU+1.DβD is DOUBLE PRECISION array, dimension (min(M,N)). The diagonal elements of the bidiagonal matrix B.EβE is DOUBLE PRECISION array, dimension (min(M,N)-1). The superdiagonal elements of the bidiagonal matrix B.QβQ is COMPLEX*16 array, dimension (LDQ,M). IfVECT = 'Q'or'B', the m-by-m unitary matrix Q. IfVECT = 'N'or'P', the array Q is not referenced.LDQβLDQ is INTEGER. The leading dimension of the array Q.LDQ >= max(1,M)ifVECT = 'Q'or'B';LDQ >= 1otherwise.PTβPT is COMPLEX*16 array, dimension (LDPT,N). IfVECT = 'P'or'B', the n-by-n unitary matrix P'. IfVECT = 'N'or'Q', the array PT is not referenced.LDPTβLDPT is INTEGER. The leading dimension of the array PT.LDPT >= max(1,N)ifVECT = 'P'or'B';LDPT >= 1otherwise.CβC is COMPLEX*16 array, dimension (LDC,NCC). On entry, an m-by-ncc matrix C. On exit, C is overwritten byQ**H*C. C is not referenced ifNCC = 0.LDCβLDC is INTEGER. The leading dimension of the array C.LDC >= max(1,M)ifNCC > 0;LDC >= 1ifNCC = 0.WORKβWORK is COMPLEX*16 array, dimension (max(M,N)).RWORKβRWORK is DOUBLE PRECISION array, dimension (max(M,N)).INFOβINFO is INTEGER.= 0: successful exit.< 0: ifINFO = -i, the i-th argument had an illegal value.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 191 of file zgbbrd.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
okay that's the whole gbbrd(3) moment, bestie β LAPACK Version 3.12.0, page gbbrd(3). slay and bye π
π
π¦ 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