hptrd(3)

✨ NAME ✨

hptrd β€” {hp,sp}trd: reduction to tridiagonal πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions

  • subroutine chptrd (uplo, n, ap, d, e, tau, info) β€” CHPTRD
  • subroutine dsptrd (uplo, n, ap, d, e, tau, info) β€” DSPTRD
  • subroutine ssptrd (uplo, n, ap, d, e, tau, info) β€” SSPTRD
  • subroutine zhptrd (uplo, n, ap, d, e, tau, info) β€” ZHPTRD

πŸ’« Detailed Description πŸ’«

okay so there's no extra lore here bestie, it just rolls straight into the function docs πŸ‘‡

🌸 Function Documentation 🌸

πŸ’– chptrd β€” CHPTRD

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 β€” CHARACTER*1. = 'U': Upper triangle of A is stored; = 'L': Lower triangle of A is stored. pick your fighter πŸ’…
  • N β€” INTEGER. The order of the matrix A. N >= 0. no negative girlies allowed 🚫
  • AP β€” COMPLEX array, dimension (N*(N+1)/2). On entry, 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 β€” REAL array, dimension (N). The diagonal elements of the tridiagonal matrix T: D(i) = A(i,i).
  • E β€” 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 β€” COMPLEX array, dimension (N-1). The scalar factors of the elementary reflectors (see Further Details). 🫢
  • INFO β€” INTEGER. = 0: successful exit. < 0: if INFO = -i, the i-th argument had an illegal value. rude but fair πŸ’€

πŸ‘‘ 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 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.


πŸ’– dsptrd β€” DSPTRD

subroutine dsptrd (character uplo, integer n, double precision, dimension( * ) ap, double precision, dimension( * ) d, double precision, dimension( * ) e, double precision, dimension( * ) tau, integer info)

πŸŽ€ Purpose

DSPTRD 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. ✨

🧸 Parameters

  • UPLO β€” CHARACTER*1. = 'U': Upper triangle of A is stored; = 'L': Lower triangle of A is stored.
  • N β€” INTEGER. The order of the matrix A. N >= 0.
  • AP β€” DOUBLE PRECISION array, dimension (N*(N+1)/2). On entry, 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 over-written 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 β€” DOUBLE PRECISION array, dimension (N). The diagonal elements of the tridiagonal matrix T: D(i) = A(i,i).
  • E β€” DOUBLE PRECISION 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 β€” DOUBLE PRECISION array, dimension (N-1). The scalar factors of the elementary reflectors (see Further Details).
  • INFO β€” INTEGER. = 0: successful exit. < 0: if INFO = -i, the i-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 dsptrd.f.


πŸ’– ssptrd β€” SSPTRD

subroutine ssptrd (character uplo, integer n, real, dimension( * ) ap, real, dimension( * ) d, real, dimension( * ) e, real, dimension( * ) tau, integer info)

πŸŽ€ 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. ✨

🧸 Parameters

  • UPLO β€” CHARACTER*1. = 'U': Upper triangle of A is stored; = 'L': Lower triangle of A is stored.
  • N β€” INTEGER. The order of the matrix A. N >= 0.
  • AP β€” REAL array, dimension (N*(N+1)/2). On entry, 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 over-written 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 β€” REAL array, dimension (N). The diagonal elements of the tridiagonal matrix T: D(i) = A(i,i).
  • E β€” 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 β€” REAL array, dimension (N-1). The scalar factors of the elementary reflectors (see Further Details).
  • INFO β€” INTEGER. = 0: successful exit. < 0: if INFO = -i, the i-th argument had an illegal value. πŸ’€

πŸ‘‘ Author

  • Univ. of Tennessee

…and the rest of the author lineup for this one is a whole collab: Univ. of California Berkeley, Univ. of Colorado Denver, and NAG Ltd. 🫢 no cap, they ate.

✨ Further Details ✨

If UPLO = 'U', the matrix Q is represented as a product of elementary reflectors, literally:

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). Slay.

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). Periodt.

Definition at line 149 of file ssptrd.f.


πŸ¦‹ subroutine zhptrd / ZHPTRD πŸ¦‹

subroutine zhptrd (character uplo, integer n, complex*16, dimension( * ) ap,
     double precision, dimension( * ) d, double precision, dimension( * ) e,
     complex*16, dimension( * ) tau, integer info)

πŸŽ€ Purpose πŸŽ€

ZHPTRD 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 🌸

okay bestie, here’s the parameter rundown, and yes every single one matters:

  • UPLO β€” UPLO is CHARACTER*1. = 'U': the upper triangle of A is stored; = 'L': the lower triangle of A is stored.
  • N β€” N is INTEGER. The order of the matrix A. N >= 0.
  • AP β€” AP is COMPLEX*16 array, dimension (N*(N+1)/2). On entry, 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 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.
  • D β€” D is DOUBLE PRECISION array, dimension (N). The diagonal elements of the tridiagonal matrix T: D(i) = A(i,i).
  • E β€” E is DOUBLE PRECISION 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 COMPLEX*16 array, dimension (N-1). The scalar factors of the elementary reflectors (see Further Details).
  • INFO β€” INFO is INTEGER. = 0: successful exit; < 0: if INFO = -i, the i-th argument had an illegal value.

πŸ‘‘ Author πŸ‘‘

shoutout to the author crew:

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

✨ Further Details ✨

same reflector vibe but now with complex scalars and vectors β€” v**H era, iykyk:

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 zhptrd.f.

🌈 Author 🌈

Generated automatically by Doxygen for LAPACK from the source code.


and that’s the whole page, bestie: this one is from LAPACK Version 3.12.0, and it’s the hptrd(3) page β€” go off, πŸ’…βœ¨.

πŸ“¦ where this page comes from