SRC/ssptrd.f(3)
π
SRC/ssptrd.f π
okay so bestie, this page is literally SRC/ssptrd.f, straight out of the Library Functions Manual, and it's here to explain one very specific LAPACK subroutine. Buckle up π
πΈ NAME πΈ
SRC/ssptrd.f β that's the file, that's the name, periodt π
β¨ SYNOPSIS β¨
π§ Functions/Subroutines π§
subroutine ssptrd (uplo, n, ap, d, e, tau, info)
SSPTRD
π Function/Subroutine Documentation π
okay so we're talking about this subroutine, and it's giving main-character Fortran energy:
subroutine ssptrd (character uplo, integer n, real, dimension( * ) ap, real,
dimension( * ) d, real, dimension( * ) e, real, dimension( * ) tau,
integer info)
SSPTRD
π Purpose π
SSPTRD reduces a real symmetric matrix A stored in packed form to symmetric tridiagonal form T by an orthogonal similarity transformation:
Q**T * A * Q = T.
That's the whole vibe: packed symmetric matrix goes in, tridiagonal form comes out, orthogonal similarity transformation does the slaying β¨
π§Έ Parameters π§Έ
UPLO
UPLO is CHARACTER*1.
= 'U': upper triangle ofAis stored;= 'L': lower triangle ofAis stored.
N
N is INTEGER.
- The order of the matrix
A. N >= 0.
AP
AP is REAL array, dimension (N*(N+1)/2).
On entry, it holds the upper or lower triangle of the symmetric matrix A, packed columnwise in a linear array. The j-th column of A is stored in the array AP as follows:
if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
On exit, if UPLO = 'U', the diagonal and first superdiagonal of A are overwritten by the corresponding elements of the tridiagonal matrix T, and the elements above the first superdiagonal, with the array TAU, represent the orthogonal matrix Q as a product of elementary reflectors. If UPLO = 'L', the diagonal and first subdiagonal of A are overwritten by the corresponding elements of the tridiagonal matrix T, and the elements below the first subdiagonal, with the array TAU, represent the orthogonal matrix Q as a product of elementary reflectors. See Further Details. π
D
D is REAL array, dimension (N).
- The diagonal elements of the tridiagonal matrix
T: D(i) = A(i,i).
E
E is REAL array, dimension (N-1).
- The off-diagonal elements of the tridiagonal matrix
T: E(i) = A(i,i+1)ifUPLO = 'U',E(i) = A(i+1,i)ifUPLO = 'L'.
TAU
TAU is REAL array, dimension (N-1).
- The scalar factors of the elementary reflectors (see Further Details).
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 π
If UPLO = 'U', the matrix Q is represented as a product of elementary reflectors:
Q = H(n-1) . . . H(2) H(1).
Each H(i) has the form:
H(i) = I - tau * v * v**T
where tau is a real scalar, and v is a real vector with v(i+1:n) = 0 and v(i) = 1; v(1:i-1) is stored on exit in AP, overwriting A(1:i-1,i+1), and tau is stored in TAU(i).
If UPLO = 'L', the matrix Q is represented as a product of elementary reflectors:
Q = H(1) H(2) . . . H(n-1).
Each H(i) has the form:
H(i) = I - tau * v * v**T
where tau is a real scalar, and v is a real vector with v(1:i) = 0 and v(i+1) = 1; v(i+2:n) is stored on exit in AP, overwriting A(i+2:n,i), and tau is stored in TAU(i).
Definition at line 149 of file ssptrd.f.
π«Ά Author π«Ά
Generated automatically by Doxygen for LAPACK from the source code.
That's the whole page, bestie β LAPACK Version 3.12.0, SRC/ssptrd.f(3), and we are so done π
β¨π¦
π¦ 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