ZLATRD(3)
π zlatrd.f(3) β ZLATRD π
Okay bestie, welcome to zlatrd.f(3) β a.k.a. ZLATRD β the manual page thatβs giving big βLAPACK auxiliary routine with main character energyβ vibes. The header calls itself Library Functions Manual and repeats the path /home/abui...RC/zlatrd.f(3) on both sides like itβs trying to be mysterious. The NAME section spills the whole address, and it is literally:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zlatrd.f
No cap, thatβs the file. π«Ά
π NAME π
The NAME section is just that full path, bestie:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zlatrd.f
Thatβs it. Thatβs the name. Iconic, honestly. β¨
π¦ SYNOPSIS π¦
Under Functions/Subroutines, the synopsis serves us this signature:
subroutine ZLATRD (uplo, n, nb, a, lda, e, tau, w, ldw)
And the one-liner is: ZLATRD reduces the first nb rows and columns of a symmetric/Hermitian matrix A to real tridiagonal form by an unitary similarity transformation. Yes, βan unitaryβ β weβre keeping the original wording exactly, periodt.
πΈ Function/Subroutine Documentation πΈ
Bestie, hereβs the full signature in all its detailed glory:
subroutine ZLATRD (character uplo, integer n, integer nb, complex*16,
dimension( lda, * ) a, integer lda, double precision, dimension( * ) e,
complex*16, dimension( * ) tau, complex*16, dimension( ldw, * ) w,
integer ldw)
And the description again, because LAPACK said it twice and we respect the repetition: ZLATRD reduces the first nb rows and columns of a symmetric/Hermitian matrix A to real tridiagonal form by an unitary similarity transformation.
π― Purpose π―
Okay so hereβs the actual vibe of what it does:
ZLATRD reduces NB rows and columns of a complex Hermitian matrix A to Hermitian tridiagonal form by a unitary similarity transformation Q**H * A * Q, and returns the matrices V and W which are needed to apply the transformation to the unreduced part of A.
If UPLO = 'U', ZLATRD reduces the last NB rows and columns of a matrix, of which the upper triangle is supplied; if UPLO = 'L', ZLATRD reduces the first NB rows and columns of a matrix, of which the lower triangle is supplied.
This is an auxiliary routine called by ZHETRD. π
π§ Parameters π§
UPLOβUPLO is CHARACTER*1. Specifies whether the upper or lower triangular part of the Hermitian matrixAis stored:= 'U': Upper triangular= 'L': Lower triangular
NβN is INTEGER. The order of the matrixA.NBβNB is INTEGER. The number of rows and columns to be reduced.AβA is COMPLEX*16 array, dimension (LDA,N).- On entry, the Hermitian matrix
A. IfUPLO = 'U', the leadingn-by-nupper triangular part ofAcontains the upper triangular part of the matrixA, and the strictly lower triangular part ofAis not referenced. IfUPLO = 'L', the leadingn-by-nlower triangular part ofAcontains the lower triangular part of the matrixA, and the strictly upper triangular part ofAis not referenced. - On exit: if
UPLO = 'U', the lastNBcolumns have been reduced to tridiagonal form, with the diagonal elements overwriting the diagonal elements ofA; the elements above the diagonal with the arrayTAU, represent the unitary matrixQas a product of elementary reflectors; ifUPLO = 'L', the firstNBcolumns have been reduced to tridiagonal form, with the diagonal elements overwriting the diagonal elements ofA; the elements below the diagonal with the arrayTAU, represent the unitary matrixQas a product of elementary reflectors. - See Further Details.
- On entry, the Hermitian matrix
LDAβLDA is INTEGER. The leading dimension of the arrayA.LDA >= max(1,N).EβE is DOUBLE PRECISION array, dimension (N-1). IfUPLO = 'U',E(n-nb:n-1)contains the superdiagonal elements of the lastNBcolumns of the reduced matrix; ifUPLO = 'L',E(1:nb)contains the subdiagonal elements of the firstNBcolumns of the reduced matrix.TAUβTAU is COMPLEX*16 array, dimension (N-1). The scalar factors of the elementary reflectors, stored inTAU(n-nb:n-1)ifUPLO = 'U', and inTAU(1:nb)ifUPLO = 'L'. See Further Details.WβW is COMPLEX*16 array, dimension (LDW,NB). Then-by-nbmatrixWrequired to update the unreduced part ofA.LDWβLDW is INTEGER. The leading dimension of the arrayW.LDW >= max(1,N).
π Author π
Respect to the author squad:
- 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) H(n-1) . . . H(n-nb+1).
Each H(i) has the form:
H(i) = I - tau * v * v**H
where tau is a complex scalar, and v is a complex vector with v(i:n) = 0 and v(i-1) = 1; v(1:i-1) is stored on exit in A(1:i-1,i), and tau in TAU(i-1).
If UPLO = 'L', the matrix Q is represented as a product of elementary reflectors:
Q = H(1) H(2) . . . H(nb).
Each H(i) has the form:
H(i) = I - tau * v * v**H
where tau is a complex scalar, and v is a complex vector with v(1:i) = 0 and v(i+1) = 1; v(i+1:n) is stored on exit in A(i+1:n,i), and tau in TAU(i).
The elements of the vectors v together form the n-by-nb matrix V which is needed, with W, to apply the transformation to the unreduced part of the matrix, using a Hermitian rank-2k update of the form:
A := A - V*W**H - W*V**H.
The contents of A on exit are illustrated by the following examples with n = 5 and nb = 2:
if UPLO = 'U': if UPLO = 'L':
( a a a v4 v5 ) ( d )
( a a v4 v5 ) ( 1 d )
( a 1 v5 ) ( v1 1 a )
( d 1 ) ( v1 v2 a a )
( d ) ( v1 v2 a a a )
where d denotes a diagonal element of the reduced matrix, a denotes an element of the original matrix that is unchanged, and vi denotes an element of the vector defining H(i).
π§Ύ Definition π§Ύ
Definition at line 198 of file zlatrd.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
Okay bestie, thatβs the whole page β from LAPACK, Version 3.12.0, with the footer path /home/abui...RC/zlatrd.f(3). Periodt. π
β¨
π¦ 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