DLATRD(3)
π DLATRD(3) β LAPACK Library Functions Manual π
omg bestie, welcome to the DLATRD page π this is the LAPACK library functions manual, and yes the manual name is literally right there in the title. Now let's get into it.
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dlatrd.f
πΈ SYNOPSIS πΈ
π Functions/Subroutines π
subroutine DLATRD (uplo, n, nb, a, lda, e, tau, w, ldw)
DLATRD reduces the first nb rows and columns of a symmetric/Hermitian matrix A to real tridiagonal form by an orthogonal similarity transformation.
π¦ Function/Subroutine Documentation π¦
subroutine DLATRD (character uplo, integer n, integer nb, double precision,
dimension( lda, * ) a, integer lda, double precision, dimension( * ) e,
double precision, dimension( * ) tau, double precision, dimension( ldw,
* ) w, integer ldw)
DLATRD reduces the first nb rows and columns of a symmetric/Hermitian matrix A to real tridiagonal form by an orthogonal similarity transformation.
π Purpose π
okay so the whole point: DLATRD reduces NB rows and columns of a real symmetric matrix A to symmetric tridiagonal form by an orthogonal similarity transformation Q**T * 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', DLATRD reduces the last NB rows and columns of a matrix, of which the upper triangle is supplied; if UPLO = 'L', DLATRD reduces the first NB rows and columns of a matrix, of which the lower triangle is supplied.
This is an auxiliary routine called by DSYTRD.
π Parameters π
UPLOβUPLO is CHARACTER*1. Specifies whether the upper or lower triangular part of the symmetric 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 DOUBLE PRECISION array, dimension (LDA,N). On entry, the symmetric matrixA. IfUPLO = 'U', the leading n-by-n upper triangular part ofAcontains the upper triangular part of the matrixA, and the strictly lower triangular part ofAis not referenced. IfUPLO = 'L', the leading n-by-n lower 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 orthogonal matrixQas a product of elementary reflectors; - if
UPLO = '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 orthogonal matrixQas a product of elementary reflectors. See Further Details.
- if
LDAβLDA is INTEGER. The leading dimension of the arrayA.LDA >= (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 DOUBLE PRECISION 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 DOUBLE PRECISION array, dimension (LDW,NB). The n-by-nb matrixWrequired to update the unreduced part ofA.LDWβLDW is INTEGER. The leading dimension of the arrayW.LDW >= max(1,N).
π 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) H(n-1) . . . H(n-nb+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: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**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+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 symmetric rank-2k update of the form: A := A - V*W**T - W*V**T.
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 at line 197 of file dlatrd.f.
π€ Author (auto-generated) π€
Generated automatically by Doxygen for LAPACK from the source code.
π that's the whole manual, bestie β LAPACK Version 3.12.0, from /home/abui...RC/dlatrd.f(3) π
π¦ 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