ZHETD2(3)
okay bestie, welcome to the zhetd2.f(3) page โ aka ZHETD2(3) โ from the LAPACK Library Functions Manual ๐
. This is the group chat where we keep every parameter, formula, and author line intact โ no cap. Let's go.
๐ NAME ๐
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zhetd2.f
โจ SYNOPSIS โจ
Under Functions/Subroutines you've got this icon:
subroutine ZHETD2 (uplo, n, a, lda, d, e, tau, info)
And the one-liner is literally: ZHETD2 reduces a Hermitian matrix to real symmetric tridiagonal form by an unitary similarity transformation (unblocked algorithm).
๐ซถ Function/Subroutine Documentation ๐ซถ
Here's the full signature, preserved exactly:
subroutine ZHETD2 (character uplo, integer n, complex*16, dimension( lda, *
) a, integer lda, double precision, dimension( * ) d, double precision,
dimension( * ) e, complex*16, dimension( * ) tau, integer info)
And the description again, because she's iconic: ZHETD2 reduces a Hermitian matrix to real symmetric tridiagonal form by an unitary similarity transformation (unblocked algorithm).
๐ฏ Purpose: ๐ฏ
ZHETD2 reduces a complex Hermitian matrix A to real symmetric tridiagonal form T by a unitary similarity transformation:
Q**H * A * Q = T.
๐งฎ Parameters ๐งฎ
UPLO
UPLO is CHARACTER*1. It specifies whether the upper or lower triangular part of the Hermitian matrix A is stored:
= 'U':Upper triangular= 'L':Lower triangular
N
N is INTEGER. It's the order of the matrix A, and N >= 0.
A
A is COMPLEX*16 array, dimension (LDA,N).
On entry, it's the Hermitian matrix A. If UPLO = 'U', the leading n-by-n upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = 'L', the leading n-by-n lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
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 unitary 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 unitary matrix Q as a product of elementary reflectors. See Further Details.
LDA
LDA is INTEGER. It's the leading dimension of the array A, and LDA >= max(1,N).
D
D is DOUBLE PRECISION array, dimension (N). It holds the diagonal elements of the tridiagonal matrix T:
D(i) = A(i,i).
E
E is DOUBLE PRECISION array, dimension (N-1). It holds the off-diagonal elements of the tridiagonal matrix T:
E(i) = A(i,i+1) if UPLO = 'U', and E(i) = A(i+1,i) if UPLO = 'L'.
TAU
TAU is COMPLEX*16 array, dimension (N-1). It's 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**H
where tau is a complex scalar, and v is a complex vector with v(i+1:n) = 0 and v(i) = 1; v(1:i-1) is stored on exit in A(1:i-1,i+1), and tau 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**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+2:n) is stored on exit in A(i+2:n,i), and tau in TAU(i).
The contents of A on exit are illustrated by the following examples with n = 5:
if UPLO = 'U': if UPLO = 'L':
( d e v2 v3 v4 ) ( d )
( d e v3 v4 ) ( e d )
( d e v4 ) ( v1 e d )
( d e ) ( v1 v2 e d )
( d ) ( v1 v2 v3 e d )
where d and e denote diagonal and off-diagonal elements of T, and vi denotes an element of the vector defining H(i).
Definition at line 174 of file zhetd2.f.
๐ Author ๐
Generated automatically by Doxygen for LAPACK from the source code.
And that's the whole vibe check, bestie ๐. This cutie is from LAPACK Version 3.12.0, and the footer path is /home/abui...RC/zhetd2.f(3) โ slay, we kept every detail, 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