table of contents
hptrd(3) | Library Functions Manual | 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¶
Function Documentation¶
subroutine CHPTRD (character uplo, integer n, complex, dimension( * ) ap, real, dimension( * ) d, real, dimension( * ) e, complex, dimension( * ) tau, integer info)¶
CHPTRD
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 is CHARACTER*1 !> = '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 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
!> D is REAL array, dimension (N) !> The diagonal elements of the tridiagonal matrix T: !> D(i) = A(i,i). !>
E
!> E is 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 COMPLEX 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
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.
subroutine DSPTRD (character uplo, integer n, double precision, dimension( * ) ap, double precision, dimension( * ) d, double precision, dimension( * ) e, double precision, dimension( * ) tau, integer info)¶
DSPTRD
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 is CHARACTER*1 !> = '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 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
!> 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 DOUBLE PRECISION 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
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.
subroutine SSPTRD (character uplo, integer n, real, dimension( * ) ap, real, dimension( * ) d, real, dimension( * ) e, real, dimension( * ) tau, integer info)¶
SSPTRD
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 is CHARACTER*1 !> = '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 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
!> D is REAL array, dimension (N) !> The diagonal elements of the tridiagonal matrix T: !> D(i) = A(i,i). !>
E
!> E is 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 REAL 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
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 ssptrd.f.
subroutine ZHPTRD (character uplo, integer n, complex*16, dimension( * ) ap, double precision, dimension( * ) d, double precision, dimension( * ) e, complex*16, dimension( * ) tau, integer info)¶
ZHPTRD
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
!> UPLO is CHARACTER*1 !> = '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 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 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 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
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 zhptrd.f.
Author¶
Generated automatically by Doxygen for LAPACK from the source code.
Version 3.12.0 | LAPACK |