CHPTRD(3)
chptrd.f(3) β Library Functions Manual
okay so welcome to the chptrd.f(3) page, bestie β this is the Library Functions Manual and itβs giving serious LAPACK main-character energy. π
β¨
NAME
The NAME section is literally just this source path, no cap:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/chptrd.f
SYNOPSIS
π οΈ Functions/Subroutines
subroutine CHPTRD (uplo, n, ap, d, e, tau, info)
CHPTRD
CHPTRD β thatβs the subroutine, periodt.
Function/Subroutine Documentation
Hereβs the full signature again, because documentation loves a repeat:
subroutine CHPTRD (character uplo, integer n, complex, dimension( * ) ap,
real, dimension( * ) d, real, dimension( * ) e, complex, dimension( * )
tau, integer info)
π― Purpose:
CHPTRD reduces a complex Hermitian matrix A stored in packed form to real symmetric tridiagonal form T by a unitary similarity transformation:
Q**H * A * Q = T.
π§Έ Parameters
UPLO
UPLO is CHARACTER*1, and itβs literally picking which triangle weβre storing:
= 'U': Upper triangle of A is stored;= 'L': Lower triangle of A is stored.
N
N is INTEGER β the order of the matrix A. N >= 0.
AP
AP is a COMPLEX array, dimension (N*(N+1)/2).
On entry, itβs the upper or lower triangle of the Hermitian 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 unitary matrix Q as a product of elementary reflectors; if UPLO = 'L', the diagonal and first subdiagonal of A are over-written 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.
D
D is a REAL array, dimension (N).
The diagonal elements of the tridiagonal matrix T: D(i) = A(i,i).
E
E is a REAL array, dimension (N-1).
The off-diagonal elements of the tridiagonal matrix T: E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
TAU
TAU is a COMPLEX array, dimension (N-1).
The scalar factors of the elementary reflectors (see Further Details).
INFO
INFO is INTEGER:
= 0: successful exit< 0: ifINFO = -i, the i-th argument had an illegal value
π Author
The author squad is:
- 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 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**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 AP, overwriting A(i+2:n,i), and tau is stored in TAU(i).
π Definition at line 150 of file chptrd.f.
π€ Author
Generated automatically by Doxygen for LAPACK from the source code.
π Thatβs the whole page, bestie. Cute little sign-off: LAPACK, Version 3.12.0, footer path /home/abui...RC/chptrd.f(3) β and the footer has no date listed, so thatβs the exact tea. πβ¨π¦
π¦ 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