SRC/dggbal.f(3)
π NAME π
Okay bestie, welcome to SRC/dggbal.f(3) β yep, that's the page, and it lives in the Library Functions Manual. We're about to make matrix balancing make sense, no cap.
SRC/dggbal.f
β¨ SYNOPSIS β¨
Under Functions/Subroutines you've got this iconic little signature:
subroutine dggbal (job, n, a, lda, b, ldb, ilo, ihi, lscale, rscale,
work, info)
DGGBAL
π¦ Function/Subroutine Documentation π¦
π«Ά The signature, in full π«Ά
subroutine dggbal (character job, integer n, double precision, dimension(
lda, * ) a, integer lda, double precision, dimension( ldb, * ) b,
integer ldb, integer ilo, integer ihi, double precision, dimension( * )
lscale, double precision, dimension( * ) rscale, double precision,
dimension( * ) work, integer info)
DGGBAL
π― Purpose π―
Okay so DGGBAL balances a pair of general real matrices (A,B). It's giving main-character energy for your generalized eigenvalue problem, fr fr.
This involves, first, permuting A and B by similarity transformations to isolate eigenvalues in the first 1 to ILO$-$1 and last IHI+1 to N elements on the diagonal; and second, applying a diagonal similarity transformation to rows and columns ILO to IHI to make the rows and columns as close in norm as possible. Both steps are optional. π
Balancing may reduce the 1-norm of the matrices, and improve the accuracy of the computed eigenvalues and/or eigenvectors in the generalized eigenvalue problem A*x = lambda*B*x. Slay. β¨
πΈ Parameters πΈ
JOB
JOB is CHARACTER*1.
Specifies the operations to be performed on A and B:
= 'N': none: simply setILO = 1,IHI = N,LSCALE(I) = 1.0andRSCALE(I) = 1.0fori = 1,...,N.= 'P': permute only;= 'S': scale only;= 'B': both permute and scale.
N
N is INTEGER.
The order of the matrices A and B. N >= 0.
A
A is DOUBLE PRECISION array, dimension (LDA,N).
On entry, the input matrix A.
On exit, A is overwritten by the balanced matrix.
If JOB = 'N', A is not referenced.
LDA
LDA is INTEGER.
The leading dimension of the array A. LDA >= max(1,N).
B
B is DOUBLE PRECISION array, dimension (LDB,N).
On entry, the input matrix B.
On exit, B is overwritten by the balanced matrix.
If JOB = 'N', B is not referenced.
LDB
LDB is INTEGER.
The leading dimension of the array B. LDB >= max(1,N).
ILO
ILO is INTEGER.
IHI
IHI is INTEGER.
ILO and IHI are set to integers such that on exit A(i,j) = 0 and B(i,j) = 0 if i > j and j = 1,...,ILO-1 or i = IHI+1,...,N.
If JOB = 'N' or 'S', ILO = 1 and IHI = N.
LSCALE
LSCALE is DOUBLE PRECISION array, dimension (N).
Details of the permutations and scaling factors applied to the left side of A and B. If P(j) is the index of the row interchanged with row j, and D(j) is the scaling factor applied to row j, then:
LSCALE(j) = P(j) for J = 1,...,ILO-1
= D(j) for J = ILO,...,IHI
= P(j) for J = IHI+1,...,N.
The order in which the interchanges are made is N to IHI+1, then 1 to ILO-1.
RSCALE
RSCALE is DOUBLE PRECISION array, dimension (N).
Details of the permutations and scaling factors applied to the right side of A and B. If P(j) is the index of the column interchanged with column j, and D(j) is the scaling factor applied to column j, then:
LSCALE(j) = P(j) for J = 1,...,ILO-1
= D(j) for J = ILO,...,IHI
= P(j) for J = IHI+1,...,N.
The order in which the interchanges are made is N to IHI+1, then 1 to ILO-1.
And yes, bestie, that formula block saysLSCALE(j)inside theRSCALEdescription in the source β I'm keeping it exactly as written, no edits, no "fixing" the copy-paste moment π«Ά
WORK
WORK is DOUBLE PRECISION array, dimension (lwork).
lwork must be at least max(1,6*N) when JOB = 'S' or 'B', and at least 1 when JOB = 'N' or 'P'.
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.
π Further Details π
See R.C. WARD, Balancing the generalized eigenvalue problem, SIAM J. Sci. Stat. Comp. 2 (1981), 141-152.
Definition at line 175 of file dggbal.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
That's the whole page, bestie π β sourced from SRC/dggbal.f(3) and stamped LAPACK Version 3.12.0. The footer's date slot is giving empty, so no date to report β just vibes and balanced matrices β¨π¦
π¦ 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