SGGHRD(3)
π¦ SGGHRD(3) π¦
okay bestie, welcome to the SGGHRD(3) page from the Library Functions Manual. Highkey the file itβs all about is /home/abui...RC/sgghrd.f β yes, that truncated-looking path is literally whatβs printed, no cap π
.
πΈ NAME πΈ
/home/abui...RC/sgghrd.f β thatβs the name/header tea, and itβs giving main character energy β¨.
β¨ SYNOPSIS β¨
π« Functions/Subroutines π«
This is the subroutine bestie, fr fr:
subroutine SGGHRD (compq, compz, n, ilo, ihi, a, lda, b, ldb, q, ldq, z,
ldz, info)
SGGHRD
π Function/Subroutine Documentation π
Hereβs the full typed signature so you know exactly whatβs on the menu, no guessing:
subroutine SGGHRD (character compq, character compz, integer n, integer ilo,
integer ihi, real, dimension( lda, * ) a, integer lda, real, dimension(
ldb, * ) b, integer ldb, real, dimension( ldq, * ) q, integer ldq, real,
dimension( ldz, * ) z, integer ldz, integer info)
SGGHRD
π₯ Purpose π₯
okay so SGGHRD reduces a pair of real matrices (A,B) to generalized upper Hessenberg form using orthogonal transformations, where A is a general matrix and B is upper triangular. The form of the generalized eigenvalue problem is:
A*x = lambda*B*x
and B is typically made upper triangular by computing its QR factorization and moving the orthogonal matrix Q to the left side of the equation. iconic behaviour, honestly π.
This subroutine simultaneously reduces A to a Hessenberg matrix H:
Q**T*A*Z = H
and transforms B to another upper triangular matrix T:
Q**T*B*Z = T
in order to reduce the problem to its standard form:
H*y = lambda*T*y
where:
y = Z**T*x
The orthogonal matrices Q and Z are determined as products of Givens rotations. They may either be formed explicitly, or they may be postmultiplied into input matrices Q1 and Z1, so that:
Q1 * A * Z1**T = (Q1*Q) * H * (Z1*Z)**T
Q1 * B * Z1**T = (Q1*Q) * T * (Z1*Z)**T
If Q1 is the orthogonal matrix from the QR factorization of B in the original equation A*x = lambda*B*x, then SGGHRD reduces the original problem to generalized Hessenberg form. periodt π
.
π Parameters π
vibe check on the parameters, bestie β every single one is here, ngl:
COMPQβCHARACTER*1= 'N': do not computeQ;= 'I':Qis initialized to the unit matrix, and the orthogonal matrixQis returned;= 'V':Qmust contain an orthogonal matrixQ1on entry, and the productQ1*Qis returned.
COMPZβCHARACTER*1= 'N': do not computeZ;= 'I':Zis initialized to the unit matrix, and the orthogonal matrixZis returned;= 'V':Zmust contain an orthogonal matrixZ1on entry, and the productZ1*Zis returned.
NβINTEGER. The order of the matricesAandB.N >= 0.ILOβINTEGER.IHIβINTEGER.ILOandIHImark the rows and columns ofAwhich are to be reduced. It is assumed thatAis already upper triangular in rows and columns1:ILO-1andIHI+1:N.ILOandIHIare normally set by a previous call toSGGBAL; otherwise they should be set to1andNrespectively.1 <= ILO <= IHI <= N, ifN > 0;ILO=1andIHI=0, ifN=0.
AβREAL array, dimension (LDA, N)- On entry, the
N-by-Ngeneral matrix to be reduced. - On exit, the upper triangle and the first subdiagonal of
Aare overwritten with the upper Hessenberg matrixH, and the rest is set to zero.
- On entry, the
LDAβINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).BβREAL array, dimension (LDB, N)- On entry, the
N-by-Nupper triangular matrixB. - On exit, the upper triangular matrix
T = Q**T B Z. The elements below the diagonal are set to zero.
- On entry, the
LDBβINTEGER. The leading dimension of the arrayB.LDB >= max(1,N).QβREAL array, dimension (LDQ, N)- On entry, if
COMPQ = 'V', the orthogonal matrixQ1, typically from the QR factorization ofB. - On exit, if
COMPQ='I', the orthogonal matrixQ, and ifCOMPQ = 'V', the productQ1*Q. - Not referenced if
COMPQ='N'.
- On entry, if
LDQβINTEGER. The leading dimension of the arrayQ.LDQ >= NifCOMPQ='V'or'I';LDQ >= 1otherwise.ZβREAL array, dimension (LDZ, N)- On entry, if
COMPZ = 'V', the orthogonal matrixZ1. - On exit, if
COMPZ='I', the orthogonal matrixZ, and ifCOMPZ = 'V', the productZ1*Z. - Not referenced if
COMPZ='N'.
- On entry, if
LDZβINTEGER. The leading dimension of the arrayZ.LDZ >= NifCOMPZ='V'or'I';LDZ >= 1otherwise.INFOβINTEGER= 0: successful exit.< 0: ifINFO = -i, thei-th argument had an illegal value.
π Author π
the author credits are giving collaborative queen energy:
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π«Ά Further Details π«Ά
This routine reduces A to Hessenberg and B to triangular form by an unblocked reduction, as described in _Matrix_Computations_, by Golub and Van Loan (Johns Hopkins Press.)
Definition at line 205 of file sgghrd.f.
π Author π (the Doxygen one)
Generated automatically by Doxygen for LAPACK from the source code.
okay bestie thatβs the whole SGGHRD(3) page π Signing off with the footer tea: LAPACK Version 3.12.0, /home/abui...RC/sgghrd.f(3) β and yeah, no date is printed on this one, so weβre not inventing one πΈπ«Ά. iykyk.
π¦ 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